1.背景
當(dāng)我們做項(xiàng)目的時(shí)候,如果做完了,要發(fā)布,就需要打包,扔到服務(wù)器上,如果改了一點(diǎn)東西,還得打包,扔到服務(wù)器上,重復(fù)的執(zhí)行
打包=> 扔到服務(wù)器上
詳細(xì)記錄如何使用github actions自動化部署項(xiàng)目
自動化部署與持續(xù)交付:GitHub Actions CICD
自動化部署一般以下方式
- Jenkins
- gitlab
- GitHub actions
2.具體流程
2.1 在自己的項(xiàng)目
保證自己的項(xiàng)目已經(jīng)推送到了 GitHub上
git init
git add .
git commit -m "xxx"
2.2 設(shè)置GitHub token
- 進(jìn)入GitHub官網(wǎng),點(diǎn)擊 右上角頭像,點(diǎn)擊
settings
- 在左側(cè)導(dǎo)航中,點(diǎn)擊
developer setting
- 點(diǎn)擊
Tokens (classic)
然后,點(diǎn)擊Generate new token
繼續(xù)點(diǎn)擊generate new token (classic)
- 進(jìn)入新的界面,可以寫個(gè)
備注
,設(shè)置過期時(shí)間
,選中repo的所有東西和 workflow
具體看下面的圖
2.3 配置 workflows
在項(xiàng)目中新建
.github文件夾,然后創(chuàng)建workflows文件夾
,當(dāng)我們提交到github
后,他就去識別 workflows 文件夾下的yml
格式文件,并且去執(zhí)行他們
- 舉個(gè)例子,創(chuàng)建一個(gè) ci.yml 文件 ,里面寫入以下代碼
name: CI
on:
# 代碼push的時(shí)候觸發(fā)
push:
# master 分支的時(shí)候觸發(fā)
branches: master
jobs:
# 定義一個(gè)job,名字為CI
CI:
# 使用github提供給我們的機(jī)器去跑
runs-on: ubuntu-latest
# 步驟
steps:
# 步驟名為test
- name: test
# 打印哈哈
run: echo 嘿嘿嘿
然后當(dāng)我們推送到 master 的時(shí)候他就會執(zhí)行一些任務(wù)
還可以點(diǎn)進(jìn)去,查看詳情
目的肯定是:
把打包后的文件推送到服務(wù)器上
,那么就可以按照下面這樣配置
name: CICD
on:
# 代碼push的時(shí)候觸發(fā)
push:
# main 分支的時(shí)候觸發(fā)
branches:
- main
jobs:
# 定義一個(gè)job,名字為CI
CI:
# 使用github提供給我們的機(jī)器去跑
runs-on: ubuntu-latest
# 步驟
steps:
# 拉取最新的代碼
- name: Checkout repository
uses: actions/checkout@v2
with:
# 克隆的分支
ref: main
# 安裝node環(huán)境
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "18.x"
# 安裝依賴
- name: Installing Dependencies
run: npm install --legacy-peer-deps
# 打包
- name: Build
run: npm run build
# 產(chǎn)物上傳服務(wù)器
- name: Upload to Deploy Server
uses: easingthemes/ssh-deploy@v2.0.7
env:
# 免密登錄的秘鑰
SSH_PRIVATE_KEY: ${{ secrets.FWQ_PASS }}
# 服務(wù)器登錄用戶名
REMOTE_USER: ${{ secrets.FWQ_USER }}
# 服務(wù)器的公網(wǎng)IP
REMOTE_HOST: ${{ secrets.FWQ_IP }}
# 你打包后產(chǎn)物的文件夾
SOURCE: "dist/"
# 先清空目標(biāo)目錄
ARGS: "-avzr --delete"
# 上傳到服務(wù)器目標(biāo)目錄
TARGET: "/project_ddg/vitetestcicd"
2.4 配置服務(wù)器SSH
- 進(jìn)入服務(wù)器,進(jìn)入
~/.ssh
文件夾下, 就是/root/.ssh
- 生成密鑰
3.拷貝私鑰
就是不帶 pub 的那個(gè)文件,放到 2.5 步 創(chuàng)建 secrets 哪里即可
生成密鑰操作步驟
# 如果你服務(wù)器已經(jīng)有了 密鑰 ,建議 指定一下 密鑰名字
ssh-keygen -t rsa -C "youmail@gmail.com"
# 指定密鑰名字,githubActionCICD 替換為你自己起的名字
ssh-keygen -t rsa -f githubActionCICD -C "youmail@gmail.com"
這樣服務(wù)器就會生成兩個(gè)文件
2.5 配置 repository secret
secrets 的東西需要在這里配置一下,名字可以自定義,
-
1
:FWQ_PASS:一般是 SSH登錄,那么 這個(gè)地方,就得填寫服務(wù)器的私鑰
就是2.4 步 生成的東西 -
2
:FWQ_USER:一般是 root -
3
:FWQ_IP:就是服務(wù)器公網(wǎng)IP地址
2.6 服務(wù)器安裝寶塔
可以通過在線安裝進(jìn)行安裝
在線安裝地址
2.7 搭建網(wǎng)站
備注
不知道怎么處理的一個(gè)錯(cuò)誤
雖然有這個(gè)錯(cuò)誤,但是 去打開這個(gè)站點(diǎn),看到的界面,確實(shí)是最新的,就是莫名其妙的會報(bào)這個(gè)錯(cuò)誤, 求大佬解答~文章來源:http://www.zghlxwxcb.cn/news/detail-783122.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-783122.html
到了這里,關(guān)于【日常記錄】自動化部署與持續(xù)交付:GitHub Actions CICD的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!