diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 38098726..ebb9fb6e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -14,6 +14,10 @@ on: options: - Development - Production + source_ref: + description: "Git ref/SHA to build (defaults to the workflow ref)" + required: false + default: "" workflow_call: inputs: version: @@ -29,6 +33,11 @@ on: required: false type: boolean default: false + source_ref: + description: "Git ref/SHA to build" + required: false + type: string + default: "" jobs: build: @@ -37,8 +46,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 + - name: Resolve source revision + run: echo "SOURCE_SHA=$(git rev-parse HEAD)" >> "$GITHUB_ENV" + - name: Set up QEMU uses: docker/setup-qemu-action@v4 with: @@ -98,7 +111,7 @@ jobs: BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 labels: | org.opencontainers.image.source=https://github.com/${{ github.repository }} - org.opencontainers.image.revision=${{ github.sha }} + org.opencontainers.image.revision=${{ env.SOURCE_SHA }} org.opencontainers.image.created=${{ github.run_id }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml index c6ac48ed..a465c2fb 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron.yml @@ -23,6 +23,10 @@ on: - file - release - submit + source_ref: + description: "Git ref/SHA to build (defaults to the workflow ref)" + required: false + default: "" workflow_call: inputs: build_type: @@ -38,6 +42,11 @@ on: required: false type: string default: "" + source_ref: + description: "Git ref/SHA to build" + required: false + type: string + default: "" outputs: macos_universal_dmg_sha256: description: "SHA256 of the universal macOS DMG (for Homebrew cask)" @@ -54,6 +63,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Setup Node.js @@ -144,6 +154,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Setup Node.js @@ -354,6 +365,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Setup Node.js @@ -580,6 +592,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Get version from package.json @@ -686,6 +699,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Get version from package.json @@ -823,6 +837,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Get version from package.json @@ -933,6 +948,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 with: + ref: ${{ inputs.source_ref || github.ref }} fetch-depth: 1 - name: Setup Node.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e160d085..65479b41 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -278,7 +278,7 @@ jobs: MAIN_SHA=$(gh api repos/${{ github.repository }}/commits/main -q .sha) echo "main_sha=$MAIN_SHA" >> "$GITHUB_OUTPUT" - echo "build_ref=main" >> "$GITHUB_OUTPUT" + echo "build_ref=$MAIN_SHA" >> "$GITHUB_OUTPUT" docker: needs: [prep, merge-to-main] @@ -287,6 +287,7 @@ jobs: version: ${{ needs.prep.outputs.version }} build_type: Production dry_run: ${{ inputs.mode == 'Dry run' }} + source_ref: ${{ needs.merge-to-main.outputs.build_ref }} secrets: inherit create-release: @@ -351,15 +352,17 @@ jobs: build_type: all artifact_destination: ${{ inputs.mode == 'Dry run' && 'file' || 'release' }} release_tag: ${{ needs.prep.outputs.release_tag }} + source_ref: ${{ needs.merge-to-main.outputs.build_ref }} secrets: inherit electron-submit: - needs: [prep, electron-release] + needs: [prep, merge-to-main, electron-release] if: ${{ inputs.mode != 'Dry run' && inputs.mode != 'Skip submit' }} uses: ./.github/workflows/electron.yml with: build_type: all artifact_destination: submit + source_ref: ${{ needs.merge-to-main.outputs.build_ref }} secrets: inherit cask-commit-back: