1. 程式人生 > >再探CI,Github調戲Action手記——自動構建併發布到另一倉庫

再探CI,Github調戲Action手記——自動構建併發布到另一倉庫

前言

接上文初探CI,Github調戲Action手記——自動構建併發布

在學習了Action的基本操作之後

接著我們來探索Action其他可能的功能

眾所周知 只有用得到的技術學習的才會最快

我也是如此

在完成了當前倉庫不同分支的構建釋出後,我又有了新的需求 自動構建後釋出到不同的倉庫

正文

我們直接新建一個yml釋出檔案

在系統給我們生成的檔案中我們可以看到基礎語法的介紹

這裡我結合自己的理解標註一下

在進行解讀之前我們先了解一下基本概念

基本術語

  • workflow (工作流程)
  • job (任務) 一個workflow可以由多個不同的job組成
  • step (步驟) 每個job可以由多個step來組成
  • action(動作) 每個step又可以由多個action來組成

Action市場

由於持續整合大家的需求大部分可能都是相同的操作

所以github建立了一個Action市場

使得每個人編寫的Action指令碼都可以被其他人來引用

這就使得當我這種彩筆小白想要使用這些功能的時候而不用寫出很複雜的指令碼

而這整個持續整合的過程也就成為了不同的Action相組合的產物

使用方法也很簡單,只需要使用uses關鍵字直接引用別人的庫即可

uses userName/repoName

結合模板

然後我們來結合系統生成的基礎模板來進行基本的解讀

# This is a basic workflow to help you get started with Actions

name: CI  # 構建流程的名稱


on: #觸發該流程的方式
  push:
    branches: [ master ]  #觸犯該流程的分支
  pull_request:
    branches: [ master ]

jobs:
  # 該任務當前僅包含了一個任務  名稱是build
  build:    
    runs-on: ubuntu-latest #任務鎖執行的工作環境

    # 該任務所包含的步驟
    steps:
    # 步驟所依賴的操作庫 這裡引用了官方釋出的git操作庫 目的是拉取當前庫的程式碼
    - uses: actions/checkout@v2

    # 這裡是一個單行命令的模板
    - name: Run a one-line script
      run: echo Hello, world!

    # 這裡是一個多行命令的模板
    - name: Run a multi-line script
      run: |
        echo Add other actions to build,
        echo test, and deploy your project.

使用已有的庫進行持續整合(當前庫構建釋出到另外的庫)

到這裡我們就可以開始進行自己的Action的組裝了

首先我們先找一個有釋出到其他Git庫功能的Action

我們可以在github的市場搜尋自己需要的Action

這裡我使用的是s0/git-publish-subdir-action@master

點開這個庫的主頁我們可以在下方看到該庫的使用說明

這裡就不在贅述了

name: AutoBuild

on:
  push:
    branches: [ OneKeyVip-master ]
  pull_request:
    branches: [ OneKeyVip-master ]
jobs:
  
  build:
    name: build
    runs-on: ubuntu-latest    
    steps:    
    - uses: actions/checkout@v2    
    - name: npm install
      run: |
        npm install
        npm ci
    - name: npm build
      run: |
       npm run build
       cp README.MD ./publish/README.MD
       cp CHANGELOG ./publish/CHANGELOG

    - name: publish
      uses: s0/git-publish-subdir-action@master
      env:
        REPO: 目標庫
        BRANCH: 目標分支
        FOLDER: 要釋出的內容所在的資料夾        
        SSH_PRIVATE_KEY: ${{ secrets.publish }}

結語

至此我們就完成了從當前庫釋出到其他的庫持續整合的指令碼的編寫

剩下的我們就可以不再關心程式碼的生成與釋出了

可以愉快的碼程式碼了

相關推薦

CIGithub調戲Action手記——自動構建併發倉庫

前言 接上文初探CI,Github調戲Action手記——自動構建併發布 在學習了Action的基本操作之後 接著我們來探索Action其他可能的功能 眾所周知 只有用得到的技術學習的才會最快 我也是如此 在完成了當前倉庫不同分支的構建釋出後,我又有了新的需求 自動構建後釋出到不同的倉庫 正文 我們直接新建一

最全Pycharm教程(29)——IDE速成手冊

  1、準備工作   (1)確認安裝了Python直譯器,版本2.4到3.4均可。   2、初始化安裝   第一次安裝Pycharm時,安裝程式會諮詢你幾個重要問題:   (1)是否已經預先儲存了設定資訊(例如早期版本的配置資訊)   (2)許可證資訊   

java讀取excel檔案內容並將讀取到的內容寫入到檔案中

需要匯入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 程式碼:ReadExcel.java //信1605-3 20163432 張運濤 package domain; import java.io.File; im

java讀取excel文件內容並將讀取到的內容寫入到文件中

dom tst trace 一個 讀取excel domain ble write 做出 需要導入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 代碼:ReadExcel.java //信1605-3 2

GitHub+Docker Hub實現自動構建映象

構建上下文是 Dockerfile 和特定位置的任何檔案。對於自動構建,構建上下文是包含 Dockerfile 的儲存庫。 自動構建有幾個優點: 以這種方式構建的映象完全符合期望 可以訪問 Docker Hub 倉庫的任何人都可以使用 Dockerfile。 程式碼變

sql語句某值的前兩位賦給

例子:表201403的byPoolName值的前兩位賦給byFactoryName值 update [201403] set byFactoryName=substring(byPoolName,1,2) 得到的結果如圖所示:

Jenkins Centos7 GitHub Maven Tomcat9 JDK8自動構建部署

分散式專案管理,提高開發效率,使用Jenkins。 配置環境: Jenkins(LTS Release2.7.4.war) Centos7 GitHub Maven Tomcat9 JDK8 【兩種部署方式】 1. 使用內建jetty java -jar jen

iOS scoket 。換成了GCDAsyncSocket並且實現了雙方聊天

學習iOS也有一段時間了。也在試著用iOS來寫專案,感謝各路大神的幫助,就不一一@了。本文只是記載本人的學習過程。                                                                            --

泛型演算法----迭代器泛型演算法結構特定容器演算法

  一、再探迭代器   除了為每個容器定義的迭代器之外,標準庫在標頭檔案iterator中還定義了額外幾種迭代器。這些迭代器包括以下幾種: a、插入迭代器:這些迭代器被繫結到一個容器上,可用來向容器插入元素。 b、流迭代器:這些迭代器被繫結到輸入或輸出流上,課=可用來遍歷所關聯的IO流。

藍的成長記——追逐DBA(4):追憶少年情愁oracle安裝(Linux下10g、11g)

***************************************宣告***************************************         個人在oracle路上的成長記錄,其中以藍自喻,分享成長中的情感、眼界與技術的變化與成長。敏

一個可以添加商品、查詢商品的程序登錄成功的話去操作添加、查詢商品添加商品也是寫在文件裏面

指定 true rod 成功 文件 font split digi 邏輯 #寫一個可以添加商品、查詢商品的這麽程序#1、先登錄,登錄的用戶名和密碼都是寫在文件裏面的#1、讀文件、字符串分割#2、登錄成功的話,再去操作,添加、查詢商品,添加商品也是寫在文件裏面#1、讀寫文件,

微商界遭地震行業真成了傳銷聖地?

美妝 關系 代理模式 沒有 集體 方式 更多 支持 社會 近日,號稱”國內第一大微商”的摩能國際被曝涉嫌傳銷,騙取其代理商100億,10萬微商集體起訴,一些血本無歸的代理商甚至“圍攻”摩能國際總部。這則消息一經流出,立馬在微商界引起軒然大波,並再次將微商推上風口浪尖。 其

iOS 本地項目上傳githubgithub管理項目配置

one https images 建倉 灰色 項目 con ssh keys 隱藏 一、註冊github賬號 首先需要註冊一個github賬號,註冊地址:https://github.com 接著會來到這 然後會收到一封github發的郵件,進入

gdb經常使用命令

exti step poi 使用 href 運行 top ng- post ?? 前面已經有了一篇對gdb經常使用命令的總結。見 http://blog.csdn.net/u011848617/article/details/12838875 這裏對眼下學過的gdb

Git學習筆記() --- --- git的安裝及本地倉庫的創建github倉庫的連接方式

由於 分布式版本控制 是我 控制系統 路徑 一行代碼 信息 控制 fff 首先了解git的作用是什麽,本地倉庫,中央倉庫都是幹什麽的? Git是分布式版本控制系統,同一個Git倉庫,可以分布到不同的機器上。實際情況往往是這樣,找一臺電腦充當服務器的角色,每天24小時開機,其

for循環

for語句 步驟 for循環 摘要 循環 變量 p s 失敗 spa 摘要:for循環頭的組成、for的執行流程 一、for 語句的組成 0. 舉個例子 for (int val = 1; val <= 10; ++val)  sum += val; 1. 循環頭

(3)左右值與decltype

left 哪些 而是 ++ 但是 是什麽 了解 ati pure Decltype 類型指示符 “引用從來都作為其所指對象的同義詞出現,只有用在decltype處是一個例外” 理解: Decltype和auto區別: 1. auto是從表達式類型推斷出要定義的變量類

新零售添大將辦公室無人貨架能否在市場上站穩腳跟?

限制 原則 需求 然而 前景 突發事件 目的 狀態 時代 不久前,一則《我們已經吃垮兩家無人貨架了》的文章頗受爭議,文章對無人貨架能不能存活提出了質疑。如今,在新零售興起的時代,各種形式的零售業態紛紛出臺,有以生活住宅區為範圍的社區新零售、有街邊路段向四周輻射的便利店O2

Prism for WPF(基於Prism事件的模塊間通信)

模塊化 mod ane red chan lazy eat markup pub 上篇博文鏈接 一、簡單介紹:   在上一篇博文中初步搭建了Prism框架的各個模塊,但那只是搭建了一個空殼,裏面的內容基本是空的,在這一篇我將實現各個模塊間的通信,在上一篇博文的基礎上改的。

使用kubeadm部署高可用的k8s集群-01引言

data- mode etcd [1] working -s device master 基本 再探使用kubeadm部署高可用的k8s集群-01引言 2018/1/26 提示 僅供測試用途前言:高可用一直是重要的話題,需要持續研究。最近關註到 k8s 官網文檔有更新,其中