mirror of
https://github.com/skeeto/w64devkit.git
synced 2026-10-23 06:08:56 +03:00
Only run x86 build in github actions if x64 build succeeds
I rarely care about the status of the x86 builds, so this commit only runs them if the x64 builds succeed. If the x64 build is successful but the x86 build is not, the cache for the x64 build should kick in and the x86 build should follow shortly after, if it's necessary to iterate on it. Updated the GitHub Actions workflow so x86 only runs after x64 succeeds. Changed: - Split the old matrix job into two explicit jobs: build-x64 and build-x86. - Added needs: build-x64 on the x86 job, which enforces the dependency.
This commit is contained in:
79
.github/workflows/build.yml
vendored
79
.github/workflows/build.yml
vendored
@@ -15,16 +15,11 @@ permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
build-x64:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: ["x64", "x86"]
|
||||
ARCH: x64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -32,14 +27,8 @@ jobs:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Apply x86 patch
|
||||
if: matrix.arch == 'x86'
|
||||
run: patch -p1 -i src/variant-x86.patch
|
||||
|
||||
- name: Generate archive name and version string
|
||||
id: filename
|
||||
env:
|
||||
ARCH: ${{ matrix.arch }}
|
||||
run: |
|
||||
GIT_VERSION="$(git describe --tags --always)"
|
||||
echo "version=${GIT_VERSION:1}" >> $GITHUB_OUTPUT
|
||||
@@ -49,14 +38,70 @@ jobs:
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: .
|
||||
tags: w64devkit:${{ matrix.arch }}
|
||||
tags: w64devkit:${{ env.ARCH }}
|
||||
load: true
|
||||
cache-from: type=gha,scope=w64devkit-${{ matrix.arch }}
|
||||
cache-to: type=gha,scope=w64devkit-${{ matrix.arch }},mode=max
|
||||
cache-from: type=gha,scope=w64devkit-${{ env.ARCH }}
|
||||
cache-to: type=gha,scope=w64devkit-${{ env.ARCH }},mode=max
|
||||
|
||||
- name: Extract artifact
|
||||
run: |
|
||||
docker run --rm w64devkit:${{ matrix.arch }} > w64devkit.exe
|
||||
docker run --rm w64devkit:${{ env.ARCH }} > w64devkit.exe
|
||||
|
||||
- name: Rename artifact
|
||||
run: |
|
||||
mv w64devkit.exe ${{ steps.filename.outputs.archive }}.exe
|
||||
ls -lh ${{ steps.filename.outputs.archive }}.exe
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: ${{ steps.filename.outputs.archive }}.exe
|
||||
path: ${{ steps.filename.outputs.archive }}.exe
|
||||
archive: false
|
||||
|
||||
- name: Create Release
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
name: ${{ steps.filename.outputs.version }}
|
||||
files: w64devkit-*.exe
|
||||
draft: true
|
||||
|
||||
build-x86:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-x64
|
||||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
env:
|
||||
ARCH: x86
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Apply x86 patch
|
||||
run: patch -p1 -i src/variant-x86.patch
|
||||
|
||||
- name: Generate archive name and version string
|
||||
id: filename
|
||||
run: |
|
||||
GIT_VERSION="$(git describe --tags --always)"
|
||||
echo "version=${GIT_VERSION:1}" >> $GITHUB_OUTPUT
|
||||
echo "archive=w64devkit-$ARCH-${GIT_VERSION:1}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build image
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: .
|
||||
tags: w64devkit:${{ env.ARCH }}
|
||||
load: true
|
||||
cache-from: type=gha,scope=w64devkit-${{ env.ARCH }}
|
||||
cache-to: type=gha,scope=w64devkit-${{ env.ARCH }},mode=max
|
||||
|
||||
- name: Extract artifact
|
||||
run: |
|
||||
docker run --rm w64devkit:${{ env.ARCH }} > w64devkit.exe
|
||||
|
||||
- name: Rename artifact
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user