Release 1.1.5 #108
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 自动部署前端新版本到服务器 | |
# 在特定 tag 被 push 以后被触发 | |
on: | |
push: | |
# branches: | |
# - release | |
tags: | |
- 'v*.*.*' | |
jobs: | |
publish-release: | |
runs-on: ubuntu-latest | |
steps: | |
# checkout 代码 | |
- uses: actions/checkout@v2 | |
# 创建 env 文件 | |
# build docker image | |
# start the app | |
- name: 'create env file' | |
run: | | |
touch .env | |
echo ALC_ACCESS_KEY=${{ secrets.ALC_ACCESS_KEY }} >> .env | |
echo ALC_SECRET_KEY=${{ secrets.ALC_SECRET_KEY }} >> .env | |
echo VUE_APP_BASE_URL=${{ secrets.VUE_APP_BASE_URL }} >> .env | |
echo VUE_APP_BASE_H5_URL=${{ secrets.VUE_APP_BASE_H5_URL }} >> .env | |
# 使用阿里云ACR 完成 docker login | |
- name: Login to Aliyun Container Registry (ACR) | |
uses: aliyun/acr-login@v1 | |
with: | |
login-server: https://registry.cn-hangzhou.aliyuncs.com | |
region-id: cn-hangzhou | |
username: '${{ secrets.ACR_USERNAME }}' | |
password: '${{ secrets.ACR_PASSWORD }}' | |
# 使用正确的github tag 对应ACR tag 进行 docker build | |
- name: Build image for ACR docker | |
run: docker build --tag "registry.cn-hangzhou.aliyuncs.com/supercll/craft-fe:${{github.ref_name}}" . | |
# 使用标记的 tag 进行 push | |
- name: Push Image to ACR | |
run: docker push registry.cn-hangzhou.aliyuncs.com/supercll/craft-fe:${{github.ref_name}} | |
# 查找 docker-compose 文件 并且完成版本替换 | |
- name: Find and Replace | |
uses: jacobtomlinson/gha-find-replace@v2 | |
with: | |
find: '{{tag}}' | |
replace: ${{github.ref_name}} | |
include: 'docker-compose.yml' | |
- run: cat docker-compose.yml | |
# 拷贝必须文件到一个文件夹,包括 .env, docker-compose.yml, mongo-entrypoint | |
- name: 'copy necessary files in to one folder' | |
run: | | |
mkdir sharecraft | |
cp .env docker-compose.yml sharecraft | |
ls -a sharecraft | |
# 通过 scp 拷贝必须文件到服务器 | |
- name: 'copy sharecraft folder via scp' | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{ secrets.HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USER }} | |
password: ${{ secrets.SSH_PWD }} | |
source: 'sharecraft' | |
target: '~/project' | |
# 通过 SSH 登录然后重启服务 | |
- name: executing ssh and restart docker | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.HOST }} | |
port: ${{ secrets.SSH_PORT }} | |
username: ${{ secrets.SSH_USER }} | |
password: ${{ secrets.SSH_PWD }} | |
script_stop: true | |
# * 登录阿里云 ACR | |
# 停止服务 docker-compose down | |
# 启动服务 docker-compose up | |
# 清理工作 | |
script: | | |
docker login --username=${{secrets.ACR_USERNAME}} --password=${{secrets.ACR_PASSWORD}} registry.cn-hangzhou.aliyuncs.com | |
cd ~/project/sharecraft/ | |
docker pull registry.cn-hangzhou.aliyuncs.com/supercll/craft-fe:${{github.ref_name}} | |
docker-compose -f docker-compose.yml down | |
sudo rm -rf .docker-volumes | |
docker-compose -f docker-compose.yml -p sharecraft_project up -d | |
rm -rf .env | |
docker logout registry.cn-hangzhou.aliyuncs.com |