From e255bfea22c8b788463855fc7f8bbf5a63269d77 Mon Sep 17 00:00:00 2001 From: KV-Tube Deployer Date: Sat, 28 Mar 2026 08:56:06 +0700 Subject: [PATCH] ci: use git clone instead of checkout action for host mode --- .forgejo/workflows/docker-build.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.forgejo/workflows/docker-build.yml b/.forgejo/workflows/docker-build.yml index 85d5284..1f6eeb4 100644 --- a/.forgejo/workflows/docker-build.yml +++ b/.forgejo/workflows/docker-build.yml @@ -21,7 +21,11 @@ jobs: runs-on: docker steps: - name: Checkout - uses: actions/checkout@v4 + run: | + git clone https://vndangkhoa:${{ secrets.FORGEJO_PASSWORD }}@git.khoavo.myds.me/vndangkhoa/kv-tube.git /tmp/kv-tube + cd /tmp/kv-tube + git checkout ${GITHUB_SHA:-main} + echo "Checked out commit: $(git rev-parse --short HEAD)" - name: Docker info run: docker info @@ -29,10 +33,10 @@ jobs: - name: Log into registry run: echo "${{ secrets.FORGEJO_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u ${{ secrets.FORGEJO_USERNAME }} --password-stdin - - name: Determine tags - id: tags + - name: Build and push run: | - SHA_SHORT=$(echo ${GITHUB_SHA} | cut -c1-7) + cd /tmp/kv-tube + SHA_SHORT=$(git rev-parse --short HEAD) TAGS="${{ env.IMAGE }}:${SHA_SHORT}" if [ "${GITHUB_REF}" = "refs/heads/main" ] || [ "${GITHUB_REF}" = "refs/heads/master" ]; then TAGS="${TAGS},${{ env.IMAGE }}:main" @@ -41,21 +45,19 @@ jobs: VERSION=${GITHUB_REF#refs/tags/v} TAGS="${TAGS},${{ env.IMAGE }}:${VERSION},${{ env.IMAGE }}:latest" fi - echo "tags=${TAGS}" >> $GITHUB_OUTPUT echo "Building tags: ${TAGS}" - - name: Build and push - run: | TAG_ARGS="" - IFS=',' read -ra TAG_ARRAY <<< "${{ steps.tags.outputs.tags }}" + IFS=',' read -ra TAG_ARRAY <<< "${TAGS}" for tag in "${TAG_ARRAY[@]}"; do TAG_ARGS="${TAG_ARGS} -t ${tag}" done - echo "docker build ${TAG_ARGS} --build-arg NEXT_PUBLIC_API_URL=... ." + docker build \ ${TAG_ARGS} \ --build-arg NEXT_PUBLIC_API_URL=${{ github.event.inputs.api_url || 'http://ut.khoavo.myds.me:8981/api' }} \ . + for tag in "${TAG_ARRAY[@]}"; do echo "Pushing ${tag}..." docker push "${tag}" @@ -63,3 +65,7 @@ jobs: - name: Verify run: docker images | grep kv-tube + + - name: Cleanup + if: always() + run: rm -rf /tmp/kv-tube