我的一些 github action 前端部署方案
我的一些个人项目的部署方案合集
项目主页: https://github.com/afeiship/action-deploy2ssh
方案列表
ID | 名称 | 备注 | 项目主页 |
---|---|---|---|
1 | deploy2ssh | 使用 ssh 方式部署项目到服务器 | https://github.com/afeiship/action-deploy2ssh |
2 | deploy2cos | 使用 cos 命令来部署项目到 cos 的桶(Tencent) | https://github.com/afeiship/action-deploy2cos |
3 | deploy2aliyun | 使用 aliyun oss 命令来部署项目到 oss 的桶(Aliyun) | https://github.com/afeiship/action-deploy2aliyun |
方案1: deploy2ssh
这里使用的是 password,因为相对简单,如果是公司的服务器,可能需要使用 key(id_rsa 文件)的方式登录。
1️⃣ 设置
设置 env-vars(action),将 host/username/password 设置到项目的 secrets/action 里去
gh secret set -f ~/.dotfiles/.servers/.env.dicfree-server
2️⃣ 设置 ci
提前设置好
mkdir -p .github/workflows
目录
name: deploy2ssh workflow
on:
push:
branches: main
jobs:
Release:
name: Release
runs-on: ubuntu-latest
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USERNAME: ${{ secrets.SSH_USERNAME }}
SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }}
if: contains(github.event.head_commit.message, '__@production__')
steps:
- uses: actions/checkout@v3
- name: copy file via ssh password
uses: afeiship/action-deploy2ssh@main
with:
build_dist: app
target_dir: /tmp/test
方案2:deploy2cos
这里提前得拿到 cos 的相关 secret和 id
1️⃣ 设置
gh secret set COS_YML -b "$(cat ~/.cos.yaml)"
2️⃣ 设置 ci
name: deploy2cos workflow
on:
push:
branches: master
jobs:
Release:
name: Release
runs-on: ubuntu-latest
env:
COS_YML: ${{ secrets.COS_YML }}
if: contains(github.event.head_commit.message, '__@production__')
steps:
- name: All in one
uses: afeiship/action-deploy2cos@master
with:
build_dist: "build"
oss_bucket: cos://your-cos/test/
方案3: deploy2aliyun
拿到 oss 的相关
id/key
之后再进行
1️⃣ 设置 env
gh secret set -f ~/.aliyun/.env.kubebio
2️⃣ 设置 ci
name: deploy2aliyun workflow
on:
push:
branches:
- master
jobs:
Release:
name: Release
runs-on: ubuntu-latest
env:
ACCESS_KEY_ID: ${{ secrets.ALIBABACLOUD_ACCESS_KEY_ID }}
ACCESS_KEY_SECRET: ${{ secrets.ALIBABACLOUD_ACCESS_KEY_SECRET }}
REGION: ${{ secrets.ALIBABACLOUD_REGION_ID }}
if: contains(github.event.head_commit.message, '__@production__')
steps:
- name: All in one
uses: afeiship/action-deploy2aliyun@master
with:
build_dist: "build"
oss_bucket: "oss://you-bucket/sub-path/assets/test-app-deploy2aliyun/"



