chore: Update CI workflow with new builds, env var, and deploy job

* Update CI workflow with changes to branch names, builds, and jobs
  * Introduce new 'SHORT\_SHA' env variable for CI workflow
  * Rename 'docker' job to 'build\_latest' and utilize it in 'deploy' job
  * Implement specific branch builds and 'deploy' job for a specific host
This commit is contained in:
Laisky.Cai
2024-03-28 01:34:40 +00:00
parent 26c04dcf87
commit 5419a10ee7

View File

@@ -3,10 +3,41 @@ name: ci
on:
push:
branches:
- 'main'
- 'master'
- 'test/ci'
jobs:
docker:
build_latest:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push latest
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ppcelery/one-api:latest
cache-from: type=gha
cache-to: type=gha,mode=max
build_hash:
runs-on: ubuntu-latest
steps:
-
@@ -29,15 +60,6 @@ jobs:
- name: Add SHORT_SHA env property with commit short sha
run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-7`" >> $GITHUB_ENV
-
name: Build and push latest
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ppcelery/one-api:latest
cache-from: type=gha
cache-to: type=gha,mode=max
-
name: Build and push hash label
uses: docker/build-push-action@v5
@@ -47,3 +69,20 @@ jobs:
tags: ppcelery/one-api:${{ env.SHORT_SHA }}
cache-from: type=gha
cache-to: type=gha,mode=max
deploy:
runs-on: ubuntu-latest
needs: build_latest
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.TARGET_HOST }}
username: ${{ secrets.TARGET_HOST_USERNAME }}
password: ${{ secrets.TARGET_HOST_PASSWORD }}
port: ${{ secrets.TARGET_HOST_SSH_PORT }}
script: |
docker pull ppcelery/one-api:latest
cd /home/laisky/repo/VPS
docker-compose -f b1-docker-compose.yml up -d --remove-orphans --force-recreate oneapi
docker ps