pms/.gitea/workflows/pms.yaml

96 lines
3.3 KiB
YAML
Raw Normal View History

2024-08-17 16:52:03 +08:00
name: Docker Deploy
on:
workflow_dispatch:
push:
branches:
- main # 监听main分支的push事件
2024-08-17 16:56:54 +08:00
- pms* # 监听v开头的分支push事件
2024-08-17 16:52:03 +08:00
tags:
- "v*" #监听所有含v开头的push事件
jobs:
build-and-deploy:
runs-on: runner
env:
2024-08-17 20:10:32 +08:00
HOST_PORT_WEB: 8080
CTN_NAME_WEB: "ctn-pms-web"
IMG_NAME_WEB: "${{ github.repository }}-web:${{ github.ref_name }}"
REMOTE_IMG_NAME_WEB: "${{ vars.ALI_REGISTRY }}/${{ github.repository }}-web:${{ github.ref_name }}"
HOST_PORT_SERVER: 8888
CTN_NAME_SERVER: "ctn-pms-server"
IMG_NAME_SERVER: "${{ github.repository }}-server:${{ github.ref_name }}"
REMOTE_IMG_NAME_SERVER: "${{ vars.ALI_REGISTRY }}/${{ github.repository }}-server:${{ github.ref_name }}"
2024-08-17 16:52:03 +08:00
steps:
- name: install nodejs&golang and set proxy
run: |
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add npm go docker
npm config set registry https://npm.aliyun.com
2024-08-17 20:10:32 +08:00
echo "-----============$REMOTE_IMG_NAME_SERVER=========--------"
2024-08-17 18:07:50 +08:00
2024-08-17 18:16:54 +08:00
2024-08-17 16:52:03 +08:00
- name: Checkout Repo
uses: http://${{vars.DOMAIN}}:5678/actions/checkout@v4
2024-08-17 18:41:30 +08:00
- name: Login to Alibaba Cloud Docker Registry
uses: http://${{vars.DOMAIN}}:5678/docker/login-action@v3
with:
registry: ${{ vars.ALI_REGISTRY }}
username: ${{ secrets.ALI_USER }}
password: ${{ secrets.ALI_PWD }}
2024-08-17 18:07:50 +08:00
2024-08-17 18:41:30 +08:00
- name: Remove Container & Image
run: |
2024-08-17 20:10:32 +08:00
docker stop $CTN_NAME_WEB || true
docker rm $CTN_NAME_WEB || true
docker rmi $REMOTE_IMG_NAME_WEB || true
2024-08-17 18:07:50 +08:00
2024-08-17 20:10:32 +08:00
docker stop $CTN_NAME_SERVER || true
docker rm $CTN_NAME_SERVER || true
docker rmi $REMOTE_IMG_NAME_SERVER || true
- name: Build and Push [SERVER] Docker Image To Alibaba Cloud
2024-08-17 18:41:30 +08:00
uses: http://${{vars.DOMAIN}}:5678/docker/build-push-action@v6
with:
push: true
2024-08-17 19:52:39 +08:00
context: ./server
2024-08-17 18:41:30 +08:00
dockerfile: Dockerfile
#tags: ${{ vars.ALI_REGISTRY }}/${{ github.repository }}:${{ github.ref_name }}
2024-08-17 20:10:32 +08:00
tags: ${{env.REMOTE_IMG_NAME_SERVER}} #支持env变量
2024-08-17 18:41:30 +08:00
username: ${{ secrets.ALI_USER }}
password: ${{ secrets.ALI_PWD }}
2024-08-17 19:51:06 +08:00
2024-08-17 18:41:30 +08:00
- name: Run On Server
run: |
2024-08-17 20:10:32 +08:00
docker run -d --name $CTN_NAME_SERVER -p $HOST_PORT:8888 $REMOTE_IMG_NAME_SERVER
2024-08-17 19:51:06 +08:00
2024-08-17 20:10:32 +08:00
- name: Build and Push [WEB] Docker Image To Alibaba Cloud
uses: http://${{vars.DOMAIN}}:5678/docker/build-push-action@v6
with:
push: true
context: ./web
dockerfile: Dockerfile
#tags: ${{ vars.ALI_REGISTRY }}/${{ github.repository }}:${{ github.ref_name }}
tags: ${{env.REMOTE_IMG_NAME_WEB}} #支持env变量
username: ${{ secrets.ALI_USER }}
password: ${{ secrets.ALI_PWD }}
2024-08-17 19:51:06 +08:00
2024-08-17 20:10:32 +08:00
- name: Run On WEB
run: |
docker run -d --name $CTN_NAME_WEB -p $HOST_PORT:8080 $REMOTE_IMG_NAME_WEB
2024-08-17 16:52:03 +08:00
# - name: SSH Deploy
# uses: easingthemes/ssh-deploy-action@v2.1.5
# env:
# SSH_PRIVATE_KEY: ${{ vars.SSH_PRIVATE_KEY }}
# ARGS: echo "deploying"
# with:
# source: .
# destination: /app/demo
# host: ${{ vars.HOST }}
# port: 22
# username: ${{ vars.USERNAME }}