国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

這篇具有很好參考價(jià)值的文章主要介紹了利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

說一下項(xiàng)目背景,這是一個(gè)基于 Docusaurus 搭建的個(gè)人博客平臺(tái):Yopth.github.io

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

?? Docusaurs 是一個(gè)優(yōu)秀的搭建網(wǎng)站框架,基于 React 和 MDX,插件化、國際化、SEO 等做的都很不錯(cuò),有需要搭建網(wǎng)站的同學(xué)可以考慮。

該網(wǎng)站利用 GitHub Pages 部署,這個(gè)方式也是 Docusaurus 所支持的,詳見:Deploying to GitHub Pages。

利用 Docusaurus 的能力,我們可以運(yùn)行 yarn deploy 命令去把我們的項(xiàng)目代碼部署到 GitHub Pages 上去,但是每一次部署都需要手動(dòng),很麻煩。利用 GitHub Action 可以自動(dòng)化部署工作流。

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

這是來自 GitHub 官網(wǎng)的介紹,GitHub Action 其實(shí)就是一套 CI/CD,接下來我們來看下 GitHub 是如何定義這套 CI/CD 規(guī)則的。

CI/CD, Continuous Integration / Continuous Delivery, 持續(xù)集成 / 持續(xù)交付,即通過構(gòu)建自動(dòng)化的發(fā)布部署流程,將功能快速交付到用戶手上。

GitHub Action 有 5 個(gè)重要的概念。

第一個(gè)是 workflow,即工作流,工作流定義了部署的流程,直觀來看,所有工作流定義在項(xiàng)目中的 .github 下的 workflows 文件夾中,每一個(gè)工作流就是一個(gè) .yaml 文件。

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

第二個(gè)是 Event,即事件。就像設(shè)置一個(gè)按鈕一樣,只有當(dāng)用戶點(diǎn)擊這個(gè)按鈕的時(shí)候,事件才會(huì)被觸發(fā)。

事件也就是一個(gè) Action 的起點(diǎn),常見的事件比如有創(chuàng)建 Pull Request,打開一個(gè)新 isuue,推送代碼到倉庫,還有調(diào)用 GitHub 的 API,當(dāng)然,也可以手動(dòng)觸發(fā)事件。

第三是 Runner。一個(gè)工作流不會(huì)平白無故地運(yùn)行,它肯定會(huì)有一個(gè)依托的環(huán)境,這個(gè)環(huán)境就是 Runner。公開倉庫每個(gè)月可以白嫖 2000 分鐘,超出就要收費(fèi)了。

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

第四是 Job,Job 就是 workflow 上細(xì)化出來的工作步驟,相當(dāng)于流水線上的工人。Job 可以是腳本代碼,也可以是接下來要講到的 Action。

多個(gè) Job 會(huì)并行執(zhí)行,當(dāng) Job 之間存在依賴的話,那么就會(huì)根據(jù)依賴串行執(zhí)行,并且由于這些 Job 是在同一個(gè) Runner 運(yùn)行,那么產(chǎn)生的數(shù)據(jù)是可以共享的。

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

最后是 action,實(shí)際上也就是可復(fù)用的 workflow。很容易想象得到,當(dāng)我們自己的有兩個(gè)項(xiàng)目,定義的 workflow 都一樣,那么重復(fù)寫兩次代碼肯定沒必要。

如何創(chuàng)建 workflow,以官網(wǎng)例子來說:

首先我們?cè)陧?xiàng)目根目錄創(chuàng)建 .github > workflows > deploy.yaml 這里的文件層級(jí)目錄。

接著編輯 deploy.yaml 文件

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v
  1. name:整個(gè) workflow 的名字,可選。
  1. on: [push]:workflow 觸發(fā)的事件,push 表示當(dāng)推送代碼到倉庫的時(shí)候觸發(fā)。
  1. jobs:定義所有的 job,這里只有一個(gè) job。
  1. check-bats-version:job 的名稱。
  1. runs-on: ubuntu-latest:定義 runner 的環(huán)境。
  1. steps:定義 job 的每一個(gè)步驟。
  1. uses: actions/checkout@v3:這里就是一個(gè)復(fù)用的 action,它會(huì)把倉庫代碼檢出到 runner 中。
  1. actions/setup-node@v3:這里也是一個(gè)復(fù)用的 action,它的作用是安裝一個(gè)指定版本的 node。
  1. run: npm install -g bats:全局安裝 bats 依賴 npm 包
  1. bats -v:運(yùn)行 bats 命令,輸出版本。

當(dāng)推送到 GitHub 倉庫上去之后,會(huì)自動(dòng)觸發(fā) Action:

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

可以看到我們定義的 workflow:
利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署
可以看到我們的 yaml 文件:

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

點(diǎn)擊進(jìn)去可以查看 Action 運(yùn)行的結(jié)果:

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署
也可以查看 Job 的執(zhí)行日志:

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

學(xué)習(xí)了 GitHub Action,那么接下來就是為 Yopth 網(wǎng)站創(chuàng)建一個(gè) yaml 文件:

name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main

jobs:
  deploy:
    name: Deploy to GitHub Pages
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn

      - name: Install dependencies
        run: yarn install --frozen-lockfile

      - name: Build website
        run: yarn build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.TOKEN }}
          publish_dir: ./build
          user_name: Penggeor
          user_email: wkpcoder@163.com

這里我們使用 Docusaurus 官方推薦的 Action 配置。這里有一個(gè) secrets.TOKEN,TOKEN 這種屬于私密常量,肯定是不能直接明文暴露在代碼中,我們可以在組織的設(shè)置中去創(chuàng)建這樣的私密常量:

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署

通過配置這樣簡單的 yaml 文件,就實(shí)現(xiàn)一個(gè)簡易好用的 CI/CD,下次只需要推送代碼到 main 分支,即可觸發(fā) GitHub Pages 的重新部署。GitHub Action 確實(shí)可以操練起來 ??文章來源地址http://www.zghlxwxcb.cn/news/detail-423326.html

到了這里,關(guān)于利用 GitHub Action 對(duì)項(xiàng)目進(jìn)行自動(dòng)部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • github action初體驗(yàn)實(shí)現(xiàn)maven項(xiàng)目自動(dòng)ci test

    github action初體驗(yàn)實(shí)現(xiàn)maven項(xiàng)目自動(dòng)ci test

    這里是 weihubeats ,覺得文章不錯(cuò)可以關(guān)注公眾號(hào) 小奏技術(shù) ,文章首發(fā)。拒絕營銷號(hào),拒絕標(biāo)題黨 GitHub Actions是GitHub提供的一種持續(xù)集成/持續(xù)交付(CI/CD)工具,它可以幫助開發(fā)者自動(dòng)化軟件開發(fā)流程中的各種任務(wù),如構(gòu)建、測(cè)試、部署等。通過在代碼倉庫中配置和定義工作流

    2024年01月23日
    瀏覽(23)
  • 利用Git及GitHub對(duì)項(xiàng)目進(jìn)行版本控制

    利用Git及GitHub對(duì)項(xiàng)目進(jìn)行版本控制

    目錄 一、在本地安裝Git 二、利用Git將項(xiàng)目上傳到Github上? 三、用HTTPS獲取GitHub上的項(xiàng)目 四、版本控制 1、Git安裝鏈接: https://git-scm.com/downloads 2、下載安裝包,雙擊exe文件進(jìn)行安裝:? 3、接下來會(huì)彈出一系列詢問框,全部選擇next即可: ?4、安裝完畢選擇Finish即可: 5、啟動(dòng)

    2024年02月08日
    瀏覽(13)
  • 使用 GitHub Action 自動(dòng)更新 Sealos 集群的應(yīng)用鏡像

    在 IT 領(lǐng)域,自動(dòng)化無疑已成為提高工作效率和減少人為錯(cuò)誤的關(guān)鍵。Sealos 作為一個(gè)強(qiáng)大的云操作系統(tǒng),已經(jīng)為許多企業(yè)和開發(fā)者提供了穩(wěn)定可靠的服務(wù)。與此同時(shí),隨著技術(shù)不斷發(fā)展,集成更多的功能和服務(wù)變得尤為重要??紤]到這一點(diǎn),本文將介紹如何 利用 GitHub Action 來

    2024年02月08日
    瀏覽(19)
  • 白嫖GitHub Action實(shí)現(xiàn)開源項(xiàng)目CICD

    在今天這個(gè)快速變化的時(shí)代,開發(fā)者們需要與時(shí)俱進(jìn),不斷提升自己的工作效率。在這篇文章里,將一起探討如何使用CI/CD和Github Action讓你的項(xiàng)目更加高效,快速響應(yīng)市場(chǎng)變化。 CI(持續(xù)集成,Continuous Integration)是一種軟件開發(fā)實(shí)踐,它要求開發(fā)者頻繁地將代碼集成到共享的

    2023年04月26日
    瀏覽(27)
  • 使用Github-Action持續(xù)部署Springboot或vue

    使用Github-Action持續(xù)部署Springboot或vue

    GitHub Actions 是 GitHub 提供的一項(xiàng)持續(xù)集成 (CI) 和持續(xù)部署 (CD) 服務(wù)。它允許你在代碼倉庫中定義和運(yùn)行自動(dòng)化的工作流程,以響應(yīng)存儲(chǔ)庫中的事件或調(diào)度。GitHub Actions 可以用于構(gòu)建、測(cè)試、打包和部署項(xiàng)目,也可以執(zhí)行其他自動(dòng)化任務(wù)。 詳細(xì)github action相關(guān)信息請(qǐng)看最底部 第

    2024年01月16日
    瀏覽(17)
  • 使用GitHub Actions 來進(jìn)行項(xiàng)目遠(yuǎn)程服務(wù)器部署

    使用GitHub Actions 來進(jìn)行項(xiàng)目遠(yuǎn)程服務(wù)器部署

    由于項(xiàng)目源碼是托管在github的,而部署是放在遠(yuǎn)程服務(wù)器上,并且使用nginx部署。 現(xiàn)在的部署流程時(shí),需要更新時(shí),在本地切換到master分支,執(zhí)行構(gòu)建操作,拿到構(gòu)建出的dist目錄,將其上傳到遠(yuǎn)程服務(wù)的某個(gè)nginx目錄,重啟nginx服務(wù)。 基于以上,使用GitHub Actions做CI/CD流程。

    2024年02月14日
    瀏覽(22)
  • 超簡單:github-action自動(dòng)化發(fā)布npm包小記

    超簡單:github-action自動(dòng)化發(fā)布npm包小記

    打開npm官網(wǎng),并注冊(cè)自己的npm賬號(hào) 1.登錄npm官網(wǎng),登錄成功后,點(diǎn)開右上角頭像,并點(diǎn)擊Access Tokens選項(xiàng) 2.點(diǎn)開Generate New Token下拉框,點(diǎn)擊Classic Token(和Granular Access Token有什么區(qū)別,請(qǐng)自行查驗(yàn)?) 3.填寫token信息,選擇token類型為Automation(可以避免2FA校驗(yàn)),保存申請(qǐng)的token信息

    2024年02月05日
    瀏覽(19)
  • 【Github-Action】統(tǒng)計(jì)整個(gè)社區(qū)所有項(xiàng)目的貢獻(xiàn)

    【Github-Action】統(tǒng)計(jì)整個(gè)社區(qū)所有項(xiàng)目的貢獻(xiàn)

    項(xiàng)目地址 如果你對(duì)github-action感興趣,還可以看這篇文章, 這篇文章教會(huì)你如何開發(fā)Github Action,并且讓你明白它是什么,怎么用,如何做到的。如何開發(fā)一個(gè)action 我是一個(gè)生成 contributors.png 的 github-action,我和市面上其他的不一樣,我專門解決整個(gè) Organization 的 commit 統(tǒng)計(jì),

    2024年01月16日
    瀏覽(43)
  • 【Github-Action】自動(dòng)為PR添加修改文件類型的label

    【Github-Action】自動(dòng)為PR添加修改文件類型的label

    如果你對(duì)github-action感興趣,還可以看這篇文章, 這篇文章教會(huì)你如何開發(fā)Github Action,并且讓你明白它是什么,怎么用,如何做到的。如何開發(fā)一個(gè)action pr-label自動(dòng)添加工具,為您添加核心團(tuán)隊(duì)提交的標(biāo)志和修改的文件類型… 可以從的pr列表中一眼辨別哪些是核心團(tuán)隊(duì)開發(fā)的

    2024年01月25日
    瀏覽(23)
  • github-webhook+docker實(shí)現(xiàn)項(xiàng)目可持續(xù)自動(dòng)化部署

    github-webhook+docker實(shí)現(xiàn)項(xiàng)目可持續(xù)自動(dòng)化部署

    使用nginx+pm2+github-webhook+docker實(shí)現(xiàn)項(xiàng)目自動(dòng)部署 注:docker也能實(shí)現(xiàn)pm2的守護(hù)進(jìn)程功能(持續(xù)啟動(dòng)項(xiàng)目),所以使用了docker就不需要使用pm2了 但是需要注意的是使用node啟動(dòng)的webhook服務(wù)器不能使用docker,因?yàn)樵趙ebhook內(nèi)部的sh腳本執(zhí)行時(shí)需要到服務(wù)器的前后端項(xiàng)目文件中去執(zhí)行,

    2024年04月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包