Skip to content

Release 1.1.3

Release 1.1.3 #106

Workflow file for this run

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