From c69cd4d818bebbbb25df7132883a288a054f1911 Mon Sep 17 00:00:00 2001 From: MS Date: Sat, 10 Feb 2024 20:40:13 -0500 Subject: [PATCH] Reusable workflow for legobin (#555) --- .github/workflows/build.yml | 21 +++++---------------- .github/workflows/legobin.yml | 32 ++++++++++++++++++++++++++++++++ .github/workflows/unittest.yml | 34 ++++++---------------------------- 3 files changed, 43 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/legobin.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c7d7363f..d5085268 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,10 @@ name: Build on: [push, pull_request] jobs: + fetch-deps: + name: Download original binaries + uses: ./.github/workflows/legobin.yml + build-current-toolchain: name: 'Current ${{ matrix.toolchain.name }}' runs-on: windows-latest @@ -98,7 +102,7 @@ jobs: compare: name: 'Compare with master' - needs: build + needs: [build, fetch-deps] runs-on: windows-latest steps: - uses: actions/checkout@master @@ -116,21 +120,6 @@ jobs: path: legobin key: legobin - - name: Download original island binares - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - run: | - C:\msys64\usr\bin\wget.exe https://legoisland.org/download/CONFIG.EXE --directory-prefix=legobin - C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin - C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin - - - name: Cache original binaries - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - uses: actions/cache/save@v3 - with: - enableCrossOsArchive: true - path: legobin - key: legobin - - name: Install python packages shell: bash run: | diff --git a/.github/workflows/legobin.yml b/.github/workflows/legobin.yml new file mode 100644 index 00000000..d9b42bc2 --- /dev/null +++ b/.github/workflows/legobin.yml @@ -0,0 +1,32 @@ +name: Download legobin + +on: + workflow_call: + +jobs: + fetch: + runs-on: ubuntu-latest + steps: + + - name: Restore cached original binaries + id: cache-original-binaries + uses: actions/cache/restore@v3 + with: + enableCrossOsArchive: true + path: legobin + key: legobin + + - name: Download original island binaries + if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} + run: | + wget https://legoisland.org/download/CONFIG.EXE --directory-prefix=legobin + wget https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin + wget https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin + + - name: Cache original binaries + if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} + uses: actions/cache/save@v3 + with: + enableCrossOsArchive: true + path: legobin + key: legobin diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 72cecc88..b1dee943 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -3,9 +3,14 @@ name: Test on: [push, pull_request] jobs: + fetch-deps: + name: Download original binaries + uses: ./.github/workflows/legobin.yml + pytest-win: name: 'Python Windows' runs-on: windows-latest + needs: fetch-deps steps: - uses: actions/checkout@v4 @@ -18,20 +23,6 @@ jobs: path: legobin key: legobin - - name: Download original island binares - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - run: | - C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin - C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin - - - name: Cache original binaries - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - uses: actions/cache/save@v3 - with: - enableCrossOsArchive: true - path: legobin - key: legobin - - name: Install python libraries shell: bash run: | @@ -45,6 +36,7 @@ jobs: pytest-ubuntu: name: 'Python Linux' runs-on: ubuntu-latest + needs: fetch-deps steps: - uses: actions/checkout@v4 @@ -57,20 +49,6 @@ jobs: path: legobin key: legobin - - name: Download original island binares - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - run: | - wget https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin - wget https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin - - - name: Cache original binaries - if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} - uses: actions/cache/save@v3 - with: - enableCrossOsArchive: true - path: legobin - key: legobin - - name: Install python libraries shell: bash run: |