github action 自動(dòng)化部署
一、創(chuàng)建github 賬戶
官方地址
點(diǎn)擊進(jìn)入 注冊(cè)/登錄
二、在項(xiàng)目目錄下創(chuàng)建文件
.github\workflows固定不變 develop.yml文件名自定義
三、編寫配置文件
name: github-action-demo # 工作流名稱
on:
push:
branches:
- develop # 生效分支
jobs:
first-github-job: # 任務(wù)名稱 自定義
runs-on: ubuntu-latest # 運(yùn)行環(huán)境
steps:
- name: Checkout
uses: actions/checkout@v3 #復(fù)用的 action 會(huì)把倉庫代碼檢出到 runner 中。
- name: Use Node.js
uses: actions/setup-node@v3 # 設(shè)置nodejs版本號(hào)
with:
node-versions: "14.19.1"
# 壓縮項(xiàng)目
- name: Build project
run: zip -vr my-artifact ./**
# 讀取package.json的值
- name: Read Version
id: version
uses: ashley-taylor/read-json-property-action@v1.0
with:
path: ./package.json
property: version
# 發(fā)布 Release
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
with:
tag_name: v${{steps.version.outputs.value}}
release_name: v${{steps.version.outputs.value}}
draft: false
prerelease: false
# 上傳構(gòu)建結(jié)果到 Release
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./my-artifact.zip
asset_name: my-artifact.zip
asset_content_type: application/zip
# 把文件上傳到服務(wù)器
- name: Upload to Deploy Server
uses: easingthemes/ssh-deploy@main
env:
# 私鑰
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_TOKEN }}
# 指定當(dāng)前目錄中要上傳的內(nèi)容
SOURCE: "./**"
# 指定上傳到部署機(jī)器的哪個(gè)目錄下
TARGET: "/apps/koa-koa"
# 上傳前指令,此處用于清空TARGET下的文件
ARGS: "-avzr --delete"
# REMOTE_HOST為機(jī)器的公網(wǎng)IP
REMOTE_HOST: ${{ secrets.HOST }}
# REMOTE_USER 為登錄機(jī)器時(shí)用到賬號(hào)名
REMOTE_USER: ${{secrets.USERNAME}}
# 排除上傳的文件 用,隔開
EXCLUDE: my-artifact.zip
SCRIPT_AFTER: |
whoami
pwd
cd /apps/koa-koa
echo "==="
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
echo $PATH
node -v
pwd
echo $RSYNC_STDOUT
npm install --production
pm2 reload koatest.json
變量解釋
secrets是定義在github中的變量
通過secerts.變量名來取值
steps
steps 是github action的關(guān)鍵字
create_release 是上一個(gè)步驟的id
outputs.upload_url 是上一個(gè)步驟的返回結(jié)果文章來源:http://www.zghlxwxcb.cn/news/detail-437290.html
倉庫地址:https://github.com/yi-xiaobai/koa-koa文章來源地址http://www.zghlxwxcb.cn/news/detail-437290.html
到了這里,關(guān)于Github 自動(dòng)化部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!