From 5419a10ee701d0aeb5c57d3ce4d59e9dfeeddf4f Mon Sep 17 00:00:00 2001 From: "Laisky.Cai" Date: Thu, 28 Mar 2024 01:34:40 +0000 Subject: [PATCH] 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 --- .github/workflows/ci.yml | 61 ++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06e82457..30f6fab9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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