亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何快速掌握Github Actions

發布時間:2021-10-23 09:55:13 來源:億速云 閱讀:213 作者:iii 欄目:web開發

這篇文章主要介紹“如何快速掌握Github Actions”,在日常操作中,相信很多人在如何快速掌握Github Actions問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何快速掌握Github Actions”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

快速開始

在 github 上進入個人倉庫,找到 Actions 的標簽頁

如何快速掌握Github Actions

Actions

如果你是一個前端項目,可以使用 Node.js 的模板,點擊 Set up this workflow

如何快速掌握Github Actions

Actions Setup

此時生成了一個文件 .github/workflows/nodejs.yaml,修改內容如下

name: Git Action Test  on: [push]  jobs:   build:      runs-on: ubuntu-latest      steps:     - uses: actions/checkout@v1     - name: Use Node.js 10.x       uses: actions/setup-node@v1       with:         node-version: 10.x     - name: npm install, build       run: |         npm install         npm run build --if-present       env:         CI: true

執行 git push 操作,此時可以在 github 的 Actions 標簽頁看到執行結果

如何快速掌握Github Actions

Actions Start

術語

runner: github 分配的用來執行 CI/CD 的構建服務器 (也可以自建 runner)

workflow: CI/CD 的工作流

job: 任務,比如構建,測試和部署。每個 workflow 由多個 job 組成

step: 每個 job 由多個 step 組成

配置

參考官方文檔: Workflow syntax for GitHub Actions[1]

以下是常用到的配置

on

該 CI/CD 觸發時的事件。如果需要上傳代碼自動部署的功能時,應該選擇 on: push

on: push

更多事件可以參考官方文檔 Events that trigger workflows[2]

另外,我們可以利用 issues 事件做很多事情,如郵件通知之類

如果是 Issue 類博客,則可以通過監聽 issues.opened 事件,調用 github api,自動生成網址博客

on:   issues:     types: [opened, edited, milestoned]

jobs

一個 CI/CD 的工作流有許多 jobs 組成,比如最典型的 job 是 lint,test,build 或者 deploy。

jobs:   test:   build:   deploy:

所有的 job 都是并行的,但往往會有依賴關系:「你總得通過測試了,才能再去部署吧」

jobs.<job_id>.needs

needs 確定 job 的依賴關系

jobs:   test:   deploy:     needs: test

jobs.<job_id>.runs-on

當你使用 github actions 時,github 會十分大方的給你分配一個配置還不錯的服務器作為構建服務器,用來跑你的  workflow

  • 2-core CPU

  • 7 GB of RAM memory

  • 14 GB of SSD disk space

恩,比我自己的服務器要強

使用 runs-on 指定服務器系統,用的最多的應該就是 ubuntu-latest 了

runs-on: ubuntu-latest  runs-on: windows-latest

jobs.<job_id>.steps

即某個任務的一系列動作,如部署一個前端需要安裝依賴,編譯代碼等等

jobs.<job_id>.steps.name

為 step 指定一個名稱,將會在 github action 的控制臺中顯示

jobs.<job_id>.steps.run

該 step 需要在 shell 中執行的命令

# 單行 - name: Install Dependencies   run: npm install  # 多行 - name: Install and Build   run: |     npm install     npm run build

jobs.<job_id>.steps.uses

選擇一個 action,可以理解為若干 steps.run,有利于代碼復用。這也是 github action 最主要的功能。

如果你想找一個好用的 github action,可以在 github marketplace 瀏覽并檢索

這是一個在當前操作系統中安裝 node:10 的 action 示例

- name: use Node.js 10.x   uses: actions/setup-node@v1   with:     node-version: 10.x

當然,這里怎么能少得了 docker 的身影呢,在 actions 中也可以使用 docker。如果對 docker 不太了解,可以看我的文章:  docker 簡易入門[3]

以下是 npm install 的一個示例

jobs:   build:     steps:       - name: Install         uses: docker://node:alpine         with:           args: npm install

secret and context

如何在 github action 上訪問敏感數據?如使用 ssh 登錄時如何維護密碼。

我們可以在 github repo 上依次點擊 Settings -> Secrets 設置 secret

如何快速掌握Github Actions

Actions Secrect

- name: setup aliyun oss   uses: manyuanrong/setup-ossutil@master   with:     endpoint: oss-cn-beijing.aliyuncs.com     access-key-id: ${{ secrets.OSS_KEY_ID }}     access-key-secret: ${{ secrets.OSS_KEY_SECRET }}

這里的 secret 就是一種 context,描述 CI/CD 一個 workflow 中的上下文信息,使用 ${{ expression }}  語法表示。除了 secret,還有

  • github: workflow 的信息,如 github.sha 可以獲取當前的 commit SHA,我們可以利用它為 sentry 或者  docker image 打入版本號

  • env: 環境變量

  • job: 當前執行 job 的信息,如 job.status 表示當前 job 的執行狀態

  • matrix: 描述一些構建信息,如 node 以及 os 版本號

更多 context 信息可以參考官方文檔 Contexts and expression syntax for GitHub  Actions[4]

實踐一:博客自動部署

我的博客目前托管在阿里云 OSS 上,以下 action.yaml 描述了自動部署的流程。可以參考我的配置  shfshanyue/blog[5]

「關于托管在阿里云 OSS 的細節,可以參考 在阿里云 OSS 托管你的前端應用[6]」

name: deploy to aliyun oss  on: [push]  jobs:   build:      runs-on: ubuntu-latest      steps:     # 切代碼到 runner     - uses: actions/checkout@v1       with:         submodules: true     # 下載 git submodule     - uses: srt32/git-actions@v0.0.3       with:         args: git submodule update --init --recursive     # 使用 node:10     - name: use Node.js 10.x       uses: actions/setup-node@v1       with:         node-version: 10.x     # npm install     - name: npm install and build       run: |         npm install         npm run build       env:         CI: true     # 設置阿里云OSS的 id/secret,存儲到 github 的 secrets 中     - name: setup aliyun oss       uses: manyuanrong/setup-ossutil@master       with:         endpoint: oss-cn-beijing.aliyuncs.com         access-key-id: ${{ secrets.OSS_KEY_ID }}         access-key-secret: ${{ secrets.OSS_KEY_SECRET }}     - name: cp files to aliyun       run: ossutil cp -rf .vuepress/dist oss://shanyue-blog/

部署成功

如何快速掌握Github Actions

部署成功

實踐二:Github Readme 自動生成

2020 年 8 月份,就是我裸辭的那個月,Github 上線了個人主頁功能,即創建 Github  用戶名的同名 Repo,其中的 Readme.md 就是自己的個人主頁。例如我,創建一個 shfshanyue/shfshanyue 的倉庫,既可以通過  Readme.md 來創建個人主頁

此時涌現了各種各樣的 Github Actions 來自定義個人主頁,大致思路如下:

  1. 鴻蒙官方戰略合作共建——HarmonyOS技術社區

  2. Github API 獲取自身 Github 動態,寫入指定格式的 Readme

  3. Github Actions 自動提交代碼

優秀 Github 個人主頁的 Actions[7]

其中一個 waka-readme-stats[8],可制作以下漂亮的個人主頁

? I'm Most Productive on Sundays  Monday       50 commits     ███??????????????????????   13.19% Tuesday      85 commits     █████????????????????????   22.43% Wednesday    56 commits     ███??????????????????????   14.78% Thursday     44 commits     ███??????????????????????   11.61% Friday       28 commits     █????????????????????????   7.39% Saturday     30 commits     ██???????????????????????   7.92% Sunday       86 commits     █████????????????????????   22.69%

實踐三:定時任務的腳本服務器

「這簡直是在薅羊毛啊!」

先獻上一個使用了 Github Actions 的工具:B 站自動簽到工具[9]。

?

通過 GitHub Actions 實現每日線上自動運行任務:每日自動登錄、觀看、分享、投幣視頻,獲取每日任務的滿額經驗,輕松升級 Level  6,實現自動領取大會員權益、月底自動為自己充電等功能。

到此,關于“如何快速掌握Github Actions”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北京市| 迭部县| 游戏| 大港区| 那坡县| 楚雄市| 平罗县| 茌平县| 额尔古纳市| 建湖县| 崇义县| 斗六市| 句容市| 开阳县| 肥乡县| 定州市| 晴隆县| 福建省| 田阳县| 临泽县| 酉阳| 永和县| 乌兰浩特市| 米易县| 韶山市| 旌德县| 大悟县| 界首市| 通州市| 神农架林区| 诸城市| 资阳市| 鄂伦春自治旗| 毕节市| 临邑县| 武邑县| 莱阳市| 永和县| 和政县| 鸡东县| 铜川市|