diff --git a/.gitea/workflows/build-base.yml b/.gitea/workflows/build-base.yml deleted file mode 100644 index f870f3a..0000000 --- a/.gitea/workflows/build-base.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build Worker Base Image - -on: - workflow_dispatch: - push: - paths: - - 'Dockerfile.base' - - 'requirements.base.txt' - branches: - - main - -jobs: - build-base: - runs-on: ubuntu-latest - permissions: - packages: write - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: git.siwatsystem.com - username: ${{ github.actor }} - password: ${{ secrets.RUNNER_TOKEN }} - - - name: Build and push base Docker image - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile.base - push: true - tags: git.siwatsystem.com/adsist-cms/worker-base:latest \ No newline at end of file diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 3aab05c..fa30b3c 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build Backend Application and Docker Image +name: Build Worker Base and Application Images on: push: @@ -7,8 +7,56 @@ on: - dev workflow_dispatch: -jobs: +jobs: + check-base-changes: + runs-on: ubuntu-latest + outputs: + base-changed: ${{ steps.changes.outputs.base-changed }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Check for base changes + id: changes + run: | + if git diff HEAD^ HEAD --name-only | grep -E "(Dockerfile\.base|requirements\.base\.txt)" > /dev/null; then + echo "base-changed=true" >> $GITHUB_OUTPUT + else + echo "base-changed=false" >> $GITHUB_OUTPUT + fi + + build-base: + needs: check-base-changes + if: needs.check-base-changes.outputs.base-changed == 'true' || github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + permissions: + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: git.siwatsystem.com + username: ${{ github.actor }} + password: ${{ secrets.RUNNER_TOKEN }} + + - name: Build and push base Docker image + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile.base + push: true + tags: git.siwatsystem.com/adsist-cms/worker-base:latest + build-docker: + needs: [check-base-changes, build-base] + if: always() && (needs.build-base.result == 'success' || needs.build-base.result == 'skipped') runs-on: ubuntu-latest permissions: packages: write