github或gitee等dev cloud使用actions通過yml配置實現自動化部署
什麼是CI
**CI又稱為work flow,是一種自動化執行工具。**多數程式碼開發平臺,例如 gitee,github,gitlab,azure devcloud都有類似於actions
的功能,用於滿足使用者自定義的條件時,自動化執行一些工作,比如 自動化部署,檢查語法,通知到微信等。
以github
為例,我們只需要在專案的actions
介面下,新建或選擇一個yml
方案,即可實現眾多功能。
如何配置CI
名稱 | 示例樣例值 | 含義 |
---|---|---|
name | CI | 檔案的名稱 |
on | … | 何時觸發此CI |
env | NODE_VERSION: “10.x” | CI檔案全域性變數 |
jobs | … | 觸發後執行的操作,後跟多個鍵,表示執行哪些工作。注意:這些工作是同時進行的 |
on:
例如 push: branches:[main]:表示main
分支在進行push
操作的時候觸發
jobs:
例如 build2333: 此處build2333
是自定義的一個工作
其中,單個job
的引數包括:
名稱 | 示例樣例值 | 含義 |
---|---|---|
name | build | 本工作的名稱 |
runs-on | ubuntu-latest | 在什麼環境執行 |
steps | … | 本工作所有的步驟 |
steps:
每個步驟都必須要有run
或uses
鍵的其中一個,表示此步驟需要執行或呼叫什麼。
name
,with
,env
這些鍵是非必須的,可以根據情況新增。
要了解
yml
檔案的更多語法,可參看微軟文件。
編寫完成後提交到倉庫,github將會自動開始執行全部步驟
樣例配置檔案
# CI name , it will display on github's action page menu
name: web deploy by ftp
# trigger on which this CI should be run
on:
# push operation is operate
push:
# here since my repository branch is named `main` , you should follow your own repository like `master`
branches: [main]
# CI enviroment settings
env:
NODE_VERSION: "10.x" # custom arg of node.js's version
jobs:
build:
name: 構建,釋出
runs-on: ubuntu-latest # use latest ubuntu to run the job
steps:
# here are some step followed , each step must have `uses` or `run` key , for CI to run
# other key like `name`,`with`,`env` is optional
- uses: actions/checkout@v2
name: 初始化 checkout
# Runs a single command using the runners shell
- name: 測試ci單行
run: echo Hello, world!
# Runs a set of commands using the runners shell
- name: 測試ci多行
run: |
echo Add other actions to build,
echo test, and deploy your project.
- name: 使用 Node.js ${{ env.NODE_VERSION }} 構建包
uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE_VERSION }}
- name: 構建執行
run: |
npm install
npm run lint
npm run build:stage
# i use `SamKirkland/FTP-Deploy-Action@4.0.0` for ftp deploy
# you can referer to github.com/SamKirkland/FTP-Deploy-Action for more infomation
- name: 靜態釋出到ftp
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
# `${{arg}}` is a template from which you set in `secrets` menu
# as `yml` file is follow .git upload to github ,`secrets` is to prevent your sensitive infomation from exposed to public
server: ${{ secrets.FTP_HOST }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./dist/
server-dir: /kitsune/
- name: 完成
run: echo deploy by ftp
相關文章
- 利用Github Actions實現自動化部署Github
- Gitee 如何自動部署 Pages?還是用 GitHub Actions!GiteeGithub
- Vuepress + GitHub Actions 實現部落格自動部署!VueGithub
- github actions自動部署Github
- 使用GitHub Actions和GitHub pages實現前端專案的自動打包部署Github前端
- Github Actions Hexo 自動部署GithubHexo
- Azure Terraform(九)GitHub Actions 實現 Infra 資源的自動化部署ORMGithub
- 利用 GitHub Actions 實現自動部署靜態部落格Github
- GO 使用Webhook 實現github 自動化部署GoWebHookGithub
- 使用Docker Compose、Nginx、SSH和Github Actions實現前端自動化部署測試機DockerNginxGithub前端
- 基於 Github Actions 自動部署 Hexo 部落格GithubHexo
- github actions 入門指南及部落格自動部署實踐Github
- 搭建jenkins配合gitee實現自動部署JenkinsGitee
- 通過GitHub Action自動部署Maven專案GithubMaven
- 透過 GitHub Actions 實現程式碼的自動編譯和釋出Github編譯
- jenkins + GitHub 實現專案自動化部署JenkinsGithub
- 利用github提供的Webhooks實現自動化部署GithubWebHook
- 前端專案自動化部署——超詳細教程(Jenkins、Github Actions)前端JenkinsGithub
- 使用 Github Actions 部署 VuePress 部落格GithubVue
- 使用 GitHub Actions 自動備份程式碼倉Github
- 使用GitHub的Webhooks實現程式碼的自動部署GithubWebHook
- 【Hexo】使用Hexo+github pages+travis ci 實現自動化部署HexoGithub
- 5 分鐘教你快速掌握 GitHub Actions 自動部署部落格Github
- 如何使用 Github Actions 自動抓取每日必應桌布?Github
- gitee 和 GitHub 的 webhook 的使用,實現伺服器程式碼的自動更新。GiteeGithubWebHook伺服器
- 通過travis自動部署hexo部落格到github pagesHexoGithub
- GithubAction對接阿里雲ECS實現自動化部署Github阿里
- 通過自動化和現代化實現網路優化優化
- Jenkins + Gitee 實現程式碼自動化構建JenkinsGitee
- 使用 Git 實現 專案的自動化部署Git
- Linux通過shell執行自動化部署Linux
- Jenkins+Docker+Gitee+SpringBoot自動化部署JenkinsDockerGiteeSpring Boot
- 使用 Git 實現 Laravel 專案的自動化部署GitLaravel
- 使用 Jenkins + Ansible 實現自動化部署 NginxJenkinsNginx
- Jenkins + Docker + Gitee自動化部署SpringBoot應用JenkinsDockerGiteeSpring Boot
- 用GitHub Actions自動釋出Hexo部落格GithubHexo
- Spring cloud config 使用gitHub或者gitee連線SpringCloudGithubGitee
- [原] php + Laravel 實現部署自動化PHPLaravel