diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index e31037d9..614c2ac2 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -31,7 +31,7 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - ref: ${{ github.ref }} + ref: ${{ github.event.workflow_run.head_sha || github.sha }} - name: Install python uses: actions/setup-python@v5 @@ -63,19 +63,27 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Get git branch and short sha for tag + env: + EVENT_BRANCH: ${{ github.event.workflow_run.head_branch || github.ref_name }} + EVENT_SHA: ${{ github.event.workflow_run.head_sha || github.sha }} run: | - git_hash_short=$(git rev-parse --short "$GITHUB_SHA") - echo "GIT_HASH_SHORT=${git_hash_short}" >> $GITHUB_ENV - git_branch=$(git branch -r --contains ${{ github.ref }} --merged ${{ github.ref }} --format "%(refname:lstrip=3)" | grep -v HEAD) - echo "GIT_BRANCH=${git_branch}" >> $GITHUB_ENV - git_branch_docker_safe=$(echo ${git_branch} | tr / -) - echo "GIT_BRANCH_DOCKER_SAFE=${git_branch_docker_safe}" >> $GITHUB_ENV + git_hash_short=$(git rev-parse --short "$EVENT_SHA") + printf 'GIT_HASH_SHORT=%s\n' "${git_hash_short}" >> "$GITHUB_ENV" + git_branch="$EVENT_BRANCH" + if [[ -z "${git_branch}" ]]; then + git_branch=$(git rev-parse --abbrev-ref HEAD) + fi + printf 'GIT_BRANCH=%s\n' "${git_branch}" >> "$GITHUB_ENV" + git_branch_docker_safe=$(echo "${git_branch}" | tr / -) + printf 'GIT_BRANCH_DOCKER_SAFE=%s\n' "${git_branch_docker_safe}" >> "$GITHUB_ENV" # Tagging documented at: https://github.com/docker/metadata-action?tab=readme-ov-file#basic - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: + # Match SHA tags and revision labels to the commit checked out above. + context: git images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=semver,pattern={{version}},value=${{ env.PACKAGE_VERSION }},enable=${{ (github.event_name == 'workflow_run') && (github.event.workflow_run.conclusion == 'success') }}