亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

最近由于自己的個(gè)人應(yīng)用增加,每次都需要在服務(wù)器手動(dòng)發(fā)布,覺得特別麻煩,所以想通過代碼控制自動(dòng)發(fā)布,直接選擇了GitHub Action

 

GitHub Action持續(xù)集成服務(wù),目前已經(jīng)免費(fèi)開放使用,由于大部分人的個(gè)人項(xiàng)目都是放在github上,那么使用它來發(fā)布、測(cè)試、部署,是非常方便的。

 

Github Action配置

 

下面的內(nèi)容默認(rèn)你已經(jīng)會(huì)創(chuàng)建Github Action,官方提供了很多Github Action 配置模版,可以根據(jù)自己的需求隨意選擇,不是太了解的可以先參考阮一峰 GitHub Actions入門教程,了解一下Github Action。

 

我們來看看Github Action配置文件的基本構(gòu)成,配置文件格式是.yml,示例如下:

 

# main.yml
# 一個(gè) workflow,名字為Github Action Example
name: Github Action Example

# 觸發(fā) workflow 的事件
on:
  push:
    # 分支隨意
    branches:
      - master

# 一個(gè)workflow由執(zhí)行的一項(xiàng)或多項(xiàng)job
jobs:
    # 一個(gè)job任務(wù),任務(wù)名為build
    build:
        # runs-on 指定job任務(wù)運(yùn)行所需要的虛擬機(jī)環(huán)境(必填字段)
        runs-on: ubuntu-latest
        # steps是每個(gè)Job的運(yùn)行步驟,可以包含一個(gè)或多個(gè)步驟
        steps:
            # action命令,切換分支獲取源碼
            - name: Checkout
                # 使用action庫  actions/checkout獲取源碼
                uses: actions/checkout@master
            # action命令,安裝Node10
            - name: use Node.js 10
                # 使用action庫  actions/setup-node安裝node
                uses: actions/setup-node@v1
                with:
                    node-version: 10
            # action命令,install && test
            - name: npm install and test
                # 運(yùn)行的命令或者 action
                run: |
                    npm install
                    npm run test
                # 環(huán)境變量
                env:
                    CI: true

 

  • Action是工作流中最小的可移植構(gòu)建塊。你可以創(chuàng)建自己的動(dòng)作,使用從GitHub社區(qū)共享的action庫,以及自定義公共action庫。
  • Step是Job執(zhí)行的一組任務(wù)。Job中的每個(gè)步驟都在同一運(yùn)行程序中執(zhí)行,從而允許該Job中的操作使用文件系統(tǒng)共享信息,Step可以運(yùn)行命令或action。
  • Job由Step構(gòu)成。你可以定義工作流文件中Job的運(yùn)行方式的依賴關(guān)系規(guī)則。Job可以同時(shí)并行運(yùn)行,也可以依賴于先前Job的狀態(tài)依次運(yùn)行。
  • Workflow由一個(gè)或多個(gè)Job組成,可以通過事件進(jìn)行計(jì)劃或激活。你可以在存儲(chǔ)庫中設(shè)置一個(gè)可配置的自動(dòng)化過程,以在GitHub上構(gòu)建,測(cè)試,打包,發(fā)布或部署任何項(xiàng)目。

 

Github: Github Action插件查詢庫,可以查詢你需要的action庫,這些都是共享的,如果滿足不了需求也可以自己定義。

 

Github Action發(fā)布阿里云ECS

 

下面就是我發(fā)布到阿里云ECS的 Github Action配置文件

 

我的Github Action服務(wù)配置

 

# main.yml
name: deploy to aliyun
on:
  push:
    branches:
      - master
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # 切換分支
      - name: Checkout
        uses: actions/checkout@master
      # 下載 git submodule
      - uses: srt32/[email protected]
        with:
          args: git submodule update --init --recursive
      # 使用 node:10
      - name: use Node.js 10
        uses: actions/setup-node@v1
        with:
          node-version: 10
      # npm install
      - name: npm install and build
        run: |
          npm install
          npm run build
        env:
          CI: true
      # Deploy
      - name: Deploy
        uses: easingthemes/[email protected]
        env:
          SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }}
          ARGS: "-avz --delete"
          SOURCE: "[Current File Dir]"
          REMOTE_HOST: "[Domain]"
          REMOTE_USER: "[UserName]"
          TARGET: "[Server Dir]"

 

以上是我的配置文件,action插件請(qǐng)根據(jù)自己的需求合理選擇。我是要博客網(wǎng)站,發(fā)布到阿里云服務(wù)上,所以采用以上配置,而最后的action Deploy中action插件的選擇,也是根據(jù)需求,在Github: action插件庫中選擇的。

 

補(bǔ)充注意??:如果你是要發(fā)布到阿里云服務(wù)器,同時(shí)也使用以上配置action文件,請(qǐng)記住:ACCESS_TOKEN 是服務(wù)器ssh密鑰對(duì)的私鑰部分應(yīng)將服務(wù)器公鑰部分添加到接收部署的服務(wù)器上的authorized_keys文件中。正常情況下,ACCESS_TOKEN 是 服務(wù)器 ~/.ssh目錄下的id_rsa 文件中 的內(nèi)容。仔細(xì)看一下
https://github.com/marketplac... 文檔中的字段配置描述)

 

最新更新20220424

由于githubs action 安全升級(jí)的原因,我發(fā)現(xiàn)有了這個(gè)報(bào)錯(cuò):

Starting the git Action
fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

 

按照提示修改配置,也在網(wǎng)上查找了很多辦法,都不太行,最后決定將 srt32/[email protected] 移除了

- - uses: srt32/[email protected]
-        with:
-         args: git submodule update --init --recursive

 

更多

使用GitHub Actions發(fā)布Hexo網(wǎng)站到GitHub Pages

GitHub Actions發(fā)布博客到阿里云OSS

GitHub Actions自動(dòng)構(gòu)建鏡像并推送到阿里云容器鏡像服務(wù)

 

參考

Core concepts for GitHub Actions

阮一峰: GitHub Actions 入門教程

分享到:
標(biāo)簽:GitHub Action
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定