CICD最簡實踐————github actions
你寫了一個部落格網站,在沒有配置CICD的時候。需要改動一些內容,你需要做下面幾件事
- npm run build等待編譯
- 開啟ftp客戶端,連線伺服器
- 找到打包檔案目錄,傳輸檔案
配置了CICD,你只需要做一件事情
- 提交程式碼
工作中常用的CICD工具有Gitlab CI,Travis CI等,場景也會更復雜。這裡使用github actions,不需要跑ci的伺服器。用最簡單的配置。實現github中提交程式碼,自動編譯,自動部署到自己的伺服器
一. 找到你要配置的github專案,建立工作流。
這時會在根目錄生成一個ci配置檔案.github/workflows/blank.yml
二.配置專案的secrets,供actions配置檔案使用
SSH_PRIVATE_KEY
1.登入到伺服器
2.cd ~/.ssh,如果有id_rsa和id_rsa.pub 檔案。代表以前配置過,跳過第三步
3.執行命令ssh-keygen -t rsa -C "your_email@example.com",這樣會生成id_rsa和id_rsa.pub
4.執行命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys。將公鑰設定成authorized_keys的內容
5.最後將私鑰id_rsa的內容設定到secrets中
其他secrets
REMOTE_HOST 伺服器ip地址 199.199.222.22
REMOTE_USER 使用者名稱 root
TARGET 伺服器打包檔案位置,如nginx的 /home/master-ui/dist
三. 配置CI檔案
actions配置檔案:.github/workflows/blank.yml
部署是使用ssh-deploy
name: CI demo
on:
push:
branches:
- master
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
# 切換到master分支
- name: checkout
uses: actions/checkout@master
# 使用 node:10
- name: use Node.js 10
uses: actions/setup-node@v1
with:
node-version: 10
- name: npm install
run: |
npm install
# 構建
- name: npm build
run: |
npm run build
# 部署
- name: deploy
uses: easingthemes/ssh-deploy@v2.0.7
# 注入環境變數供ssh-deploy使用
env:
# secrets中配置的私鑰,用於免密連線伺服器
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
# 伺服器地址
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
# 使用者名稱
REMOTE_USER: ${{ secrets.REMOTE_USER }}
# 部署路徑
TARGET: ${{ secrets.TARGET }}
# 打包檔案來源
SOURCE: "dist/"
# 刪除伺服器上TARGET目錄裡所有檔案
ARGS: "-avz --delete"
Done
相關文章
- 基於github的CICD實踐Github
- GitHub Actions 入門實踐Github
- 基於Github Actions + Docker + Git 的DevOps方案實踐教程GithubDockerdev
- github actions 入門指南及部落格自動部署實踐Github
- Github Actions 初探Github
- Github Actions 實戰提高生產力Github
- DevOps GitLab CICD 實踐2——Runner 部署devGitlab
- DevOps GitLab CICD 實踐1——GitLab 部署devGitlab
- CICD以及高可用專案實踐
- 利用Github Actions實現自動化部署Github
- 白嫖GitHub Action實現開源專案CICDGithub
- vivo 製品管理在 CICD 落地實踐
- GitHub Actions 入門指南Github
- GitHub Actions 入門教程Github
- 強大的Github ActionsGithub
- github actions自動部署Github
- Signalr自託管最簡實踐SignalR
- 使用Github Actions + Watchtower 實現專案CI/CDGithub
- Vuepress + GitHub Actions 實現部落格自動部署!VueGithub
- 【CICID】GitHub-Actions語法Github
- Github Actions Hexo 自動部署GithubHexo
- GitHub Actions,臥槽!牛批!Github
- GitHub Actions 支援 "skip ci" 了Github
- DevOps GitLab CICD 實踐3——CI檔案編寫devGitlab
- 使用GitHub Actions和GitHub pages實現前端專案的自動打包部署Github前端
- 使用 Github Actions 部署 VuePress 部落格GithubVue
- Github Actions 還能做這些事Github
- Github Actions 中 Service Container 的使用GithubAI
- 利用 GitHub Actions 實現自動部署靜態部落格Github
- Docker 版 GitLab CICD 實踐3——CI檔案編寫DockerGitlab
- Github Action Workflow 實踐Github
- 最簡單的微服務部署測試實踐微服務
- 利用github Actions釋出npm和releaseGithubNPM
- 針不戳!GitHub Actions 入坑指南Github
- 一個最簡單的 Github workflow 例子Github
- 最簡容器化動手小實踐——再戰flappybirdAPP
- Github Actions:再次改變軟體開發Github
- 用 GitHub Actions 部署 Go 語言服務GithubGo