fix: skip RetryWait for new tasks in scheduler (#459) #1367
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Container | |
| on: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - 'v*' | |
| workflow_run: | |
| workflows: [Releaser] | |
| types: | |
| - completed | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| jobs: | |
| # PR Build Check - validate Dockerfile compiles, single platform, no push | |
| build-check: | |
| if: github.event_name == 'pull_request' | |
| name: Build Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build (amd64 only, no push) | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: false | |
| platforms: linux/amd64 | |
| cache-from: type=gha | |
| # Prepare ref for Releaser workflow integration | |
| prepare-checkout: | |
| if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' | |
| name: Prepare ref | |
| runs-on: ubuntu-latest | |
| outputs: | |
| ref: ${{ steps.releaser.outputs.version }} | |
| steps: | |
| - name: Get ref from Releaser | |
| id: releaser | |
| uses: ipdxco/unified-github-workflows/.github/actions/[email protected] | |
| with: | |
| artifacts-url: ${{ github.event.workflow_run.artifacts_url }} | |
| # Publish on push to main branch | |
| publish-main: | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| name: Publish (main) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to Container registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
| tags: | | |
| type=raw,value=main | |
| type=sha,prefix=sha-,format=short | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: true | |
| platforms: linux/amd64,linux/arm64 | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| # Publish on release tag (v*) - direct push or via Releaser | |
| publish-release: | |
| name: Publish (release) | |
| needs: [prepare-checkout] | |
| # Run if: direct tag push OR workflow_run completed successfully | |
| # always() allows running even when prepare-checkout was skipped (direct tag push) | |
| if: | | |
| always() && !cancelled() && !failure() && | |
| ((github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) || | |
| (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Determine ref | |
| id: ref | |
| run: | | |
| if [ "${{ github.event_name }}" = "workflow_run" ]; then | |
| echo "ref=${{ needs.prepare-checkout.outputs.ref }}" >> $GITHUB_OUTPUT | |
| else | |
| echo "ref=${{ github.ref }}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ steps.ref.outputs.ref }} | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to Container registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
| tags: | | |
| type=semver,pattern={{version}},value=${{ steps.ref.outputs.ref }},match=v([0-9].*) | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: true | |
| platforms: linux/amd64,linux/arm64 | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |