2024-07-06 21:36:40 +08:00
|
|
|
name: Docker Deploy
|
|
|
|
|
|
|
|
on:
|
2024-07-07 10:01:19 +08:00
|
|
|
workflow_dispatch:
|
2024-07-06 21:36:40 +08:00
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- main # 监听main分支的push事件
|
2024-07-07 09:42:21 +08:00
|
|
|
- v* # 监听v开头的分支push事件
|
2024-07-09 10:39:40 +08:00
|
|
|
- SSL*
|
2024-07-07 09:42:21 +08:00
|
|
|
tags:
|
|
|
|
- 'v*' #监听所有含v开头的push事件
|
2024-07-06 21:36:40 +08:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build-and-deploy:
|
2024-07-06 21:52:36 +08:00
|
|
|
runs-on: runner
|
2024-07-06 21:36:40 +08:00
|
|
|
env:
|
|
|
|
HOST_PORT: 8080
|
2024-07-06 23:35:49 +08:00
|
|
|
# REGISTRY: "${{ vars.ALI_REGISTRY }}"
|
|
|
|
# REPO: "${{ vars.ALI_REPO }}"
|
2024-07-06 21:36:40 +08:00
|
|
|
CTN_NAME: "ctn-pms-demo"
|
|
|
|
IMG_NAME: "${{ github.repository }}:${{ github.ref_name }}"
|
2024-07-06 23:43:06 +08:00
|
|
|
REMOTE_IMG_NAME: "${{ vars.ALI_REGISTRY }}/${{ github.repository }}:${{ github.ref_name }}"
|
2024-07-06 21:36:40 +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
|
2024-07-09 10:48:44 +08:00
|
|
|
apk add npm go docker curl
|
2024-07-06 21:36:40 +08:00
|
|
|
# tzdata
|
|
|
|
npm config set registry https://npm.aliyun.com
|
|
|
|
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
|
|
|
# echo "Asia/Shanghai" > /etc/timezone
|
|
|
|
# apk del tzdata
|
|
|
|
|
2024-07-06 23:41:34 +08:00
|
|
|
echo "-----============$REMOTE_IMG_NAME=========--------"
|
2024-07-06 21:36:40 +08:00
|
|
|
# - name: Set up Go
|
|
|
|
# uses: actions/setup-go@v4
|
|
|
|
# with:
|
|
|
|
# go-version: '1.22'
|
2024-07-06 23:02:58 +08:00
|
|
|
- name: Checkout Repo
|
2024-07-06 23:08:28 +08:00
|
|
|
uses: http://${{vars.DOMAIN}}:5678/actions/checkout@v4
|
2024-07-06 22:20:47 +08:00
|
|
|
|
|
|
|
- name: Login to Alibaba Cloud Docker Registry
|
2024-07-06 23:02:58 +08:00
|
|
|
uses: http://${{vars.DOMAIN}}:5678/docker/login-action@v3
|
2024-07-06 22:20:47 +08:00
|
|
|
with:
|
2024-07-06 23:33:57 +08:00
|
|
|
registry: ${{ vars.ALI_REGISTRY }}
|
2024-07-07 20:48:38 +08:00
|
|
|
username: ${{ secrets.ALI_USER }}
|
|
|
|
password: ${{ secrets.ALI_PWD }}
|
2024-07-06 22:20:47 +08:00
|
|
|
|
2024-07-06 23:02:58 +08:00
|
|
|
- name: Remove Container & Image
|
2024-07-06 21:36:40 +08:00
|
|
|
run: |
|
|
|
|
docker stop $CTN_NAME || true
|
|
|
|
docker rm $CTN_NAME || true
|
2024-07-06 23:43:06 +08:00
|
|
|
docker rmi $REMOTE_IMG_NAME || true
|
|
|
|
# docker build -t $REMOTE_IMG_NAME . --file Dockerfile
|
2024-07-06 21:36:40 +08:00
|
|
|
|
2024-07-06 23:02:58 +08:00
|
|
|
- name: Build and Push Docker Image To Alibaba Cloud
|
2024-07-06 23:44:55 +08:00
|
|
|
uses: http://${{vars.DOMAIN}}:5678/docker/build-push-action@v6
|
2024-07-06 23:02:58 +08:00
|
|
|
with:
|
|
|
|
push: true
|
2024-07-06 23:53:01 +08:00
|
|
|
context: .
|
|
|
|
dockerfile: Dockerfile
|
2024-07-07 08:23:29 +08:00
|
|
|
#tags: ${{ vars.ALI_REGISTRY }}/${{ github.repository }}:${{ github.ref_name }}
|
2024-07-07 08:27:53 +08:00
|
|
|
tags: ${{env.REMOTE_IMG_NAME}} #支持env变量
|
2024-07-07 20:48:38 +08:00
|
|
|
username: ${{ secrets.ALI_USER }}
|
|
|
|
password: ${{ secrets.ALI_PWD }}
|
2024-07-06 21:36:40 +08:00
|
|
|
- name: Run On Server
|
|
|
|
run: |
|
2024-07-06 23:43:06 +08:00
|
|
|
docker run -d --name $CTN_NAME -p $HOST_PORT:8080 $REMOTE_IMG_NAME
|
2024-07-09 22:22:16 +08:00
|
|
|
|
|
|
|
# - uses: http://${{vars.DOMAIN}}:5678/tools/action-setup-nginx@v1
|
|
|
|
# id: nginx
|
2024-07-09 22:18:41 +08:00
|
|
|
|
2024-07-09 22:22:16 +08:00
|
|
|
# - run: |
|
|
|
|
# echo "Hello, world!" > "${{ steps.nginx.outputs.html-dir }}/index.html"
|
2024-07-09 22:18:41 +08:00
|
|
|
|
2024-07-09 22:22:16 +08:00
|
|
|
# curl http://${{vars.DOMAIN}}:${{ steps.nginx.outputs.port }}/
|
|
|
|
# # Expected output: Hello, world!
|
2024-07-09 22:18:41 +08:00
|
|
|
|
2024-07-09 22:22:16 +08:00
|
|
|
# cat "${{ steps.nginx.outputs.access-log }}"
|
2024-07-09 22:18:41 +08:00
|
|
|
# Expected to contain a line with GET / HTTP/1.1 200
|
2024-07-09 22:08:38 +08:00
|
|
|
|
2024-07-09 10:52:18 +08:00
|
|
|
|
2024-07-06 21:36:40 +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 }}
|