diff options
| author | Archez <Archez@users.noreply.github.com> | 2024-05-27 18:58:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-27 17:58:30 -0500 |
| commit | 41e35ff3ee77dd5e184416e1b50982ec1477ad19 (patch) | |
| tree | ad1841aa28c15ba5cf2e0431494af80bccece8c4 /.github | |
| parent | 0eaa533f254fa2b6d28c4cf9f1c2c9bcecac32ea (diff) | |
Fix macports cache (#543)
* fix macports cache
* cache key obey os version
* more tweaks
* fix sccache and try mac gtar replacement
* oh a custom gtar wrapper..
* comments and different test
* update
* soh otr after main build
* cache bust
* 2ship o2r builder
* change install path
* bust cache
* sccache cmake fixes
* dont list 2ship.o2r in pr artifacts
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/gtar | 4 | ||||
| -rw-r--r-- | .github/workflows/main.yml | 207 | ||||
| -rw-r--r-- | .github/workflows/pr-artifacts.yml | 1 |
3 files changed, 109 insertions, 103 deletions
diff --git a/.github/workflows/gtar b/.github/workflows/gtar new file mode 100644 index 000000000..11a13e636 --- /dev/null +++ b/.github/workflows/gtar @@ -0,0 +1,4 @@ +#!/bin/sh + +# Call the original gtar executable with sudo for macports cache restoration to root folder +exec sudo /opt/homebrew/bin/gtar.orig "$@" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2de5279b5..f1d042351 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -98,73 +98,73 @@ jobs: # source-dir: _packages # destination-dir: ./ - # generate-2ship-otr: - # runs-on: ubuntu-22.04 - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: true - # - name: ccache - # uses: hendrikmuhs/ccache-action@v1.2.11 - # with: - # key: ${{ runner.os }}-otr-ccache-${{ github.ref }}-${{ github.sha }} - # restore-keys: | - # ${{ runner.os }}-otr-ccache-${{ github.ref }} - # ${{ runner.os }}-otr-ccache - # - name: Install dependencies - # run: | - # sudo apt-get update - # sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) - # - name: Cache build folders - # uses: actions/cache@v4 - # with: - # key: ${{ runner.os }}-otr-build-${{ github.ref }}-${{ github.sha }} - # restore-keys: | - # ${{ runner.os }}-otr-build-${{ github.ref }} - # ${{ runner.os }}-otr-build - # path: | - # build-cmake - # SDL2-2.28.5 - # tinyxml2-10.0.0 - # - name: Install latest SDL - # run: | - # export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - # if [ ! -d "SDL2-2.28.5" ]; then - # wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz - # tar -xzf SDL2-2.28.5.tar.gz - # fi - # cd SDL2-2.28.5 - # ./configure --enable-hidapi-libusb - # make -j 10 - # sudo make install - # sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ - # - name: Install latest tinyxml2 - # run: | - # sudo apt-get remove libtinyxml2-dev - # export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - # if [ ! -d "tinyxml2-10.0.0" ]; then - # wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz - # tar -xzf 10.0.0.tar.gz - # fi - # cd tinyxml2-10.0.0 - # mkdir -p build - # cd build - # cmake .. - # make - # sudo make install - # - name: Generate 2ship.o2r - # run: | - # export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - # cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release - # cmake --build build-cmake --config Release --target Generate2ShipOtr -j3 - # - uses: actions/upload-artifact@v4 - # with: - # name: 2ship.o2r - # path: 2ship.o2r - # retention-days: 1 + generate-2ship-otr: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.13 + with: + key: ${{ runner.os }}-otr-ccache-${{ github.ref }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-otr-ccache-${{ github.ref }} + ${{ runner.os }}-otr-ccache- + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) + - name: Cache build folders + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-otr-build-${{ github.ref }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-otr-build-${{ github.ref }} + ${{ runner.os }}-otr-build- + path: | + build-cmake + SDL2-2.28.5 + tinyxml2-10.0.0 + - name: Install latest SDL + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + if [ ! -d "SDL2-2.28.5" ]; then + wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz + tar -xzf SDL2-2.28.5.tar.gz + fi + cd SDL2-2.28.5 + ./configure --enable-hidapi-libusb + make -j 10 + sudo make install + sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ + - name: Install latest tinyxml2 + run: | + sudo apt-get remove libtinyxml2-dev + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + if [ ! -d "tinyxml2-10.0.0" ]; then + wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz + tar -xzf 10.0.0.tar.gz + fi + cd tinyxml2-10.0.0 + mkdir -p build + cd build + cmake .. + make + sudo make install + - name: Generate 2ship.o2r + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release + cmake --build build-cmake --config Release --target Generate2ShipOtr -j3 + - uses: actions/upload-artifact@v4 + with: + name: 2ship.o2r + path: 2ship.o2r + retention-days: 1 build-macos: - # needs: generate-2ship-otr + needs: generate-2ship-otr runs-on: macos-14 steps: - uses: actions/checkout@v4 @@ -177,18 +177,24 @@ jobs: key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-14-ccache-${{ github.ref }} - ${{ runner.os }}-14-ccache + ${{ runner.os }}-14-ccache- + # Needed to apply sudo for macports cache restore + - name: Install gtar wrapper + run: | + sudo mv /opt/homebrew/bin/gtar /opt/homebrew/bin/gtar.orig + sudo cp .github/workflows/gtar /opt/homebrew/bin/gtar + sudo chmod +x /opt/homebrew/bin/gtar - name: Cache MacPorts id: cache-macports uses: actions/cache@v4 with: path: /opt/local/ - key: ${{ runner.os }}-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }} + key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }} restore-keys: | - ${{ runner.os }}-macports + ${{ runner.os }}-14-macports- - name: Install MacPorts (if necessary) run: | - if [ -d /opt/local/ ]; then + if [ command -v port &>/dev/null ]; then echo "MacPorts already installed" else wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg @@ -200,23 +206,21 @@ jobs: brew uninstall --ignore-dependencies libpng sudo port install $(cat .github/workflows/macports-deps.txt) brew install ninja - # - name: Download 2ship.o2r - # uses: actions/download-artifact@v4 - # with: - # name: 2ship.o2r - # path: build-cmake/mm + - name: Download 2ship.o2r + uses: actions/download-artifact@v4 + with: + name: 2ship.o2r + path: build-cmake/mm - name: Build 2Ship run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" - cmake --build build-cmake --config Release --target Generate2ShipOtr --parallel 10 cmake --build build-cmake --config Release --parallel 10 (cd build-cmake && cpack) mv _packages/*.dmg 2Ship.dmg mv README.md readme.txt - name: Upload build - if: ${{ startsWith(github.ref, 'refs/heads/develop') }} uses: actions/upload-artifact@v4 with: name: 2ship-mac @@ -225,7 +229,7 @@ jobs: readme.txt build-linux: - # needs: generate-2ship-otr + needs: generate-2ship-otr runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -236,19 +240,19 @@ jobs: sudo apt-get update sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) - name: ccache - uses: hendrikmuhs/ccache-action@v1.2.11 + uses: hendrikmuhs/ccache-action@v1.2.13 with: key: linux-ccache-${{ github.ref }}-${{ github.sha }} restore-keys: | linux-ccache-${{ github.ref }} - linux-ccache + linux-ccache- - name: Cache build folders uses: actions/cache@v4 with: key: linux-build-${{ github.ref }}-${{ github.sha }} restore-keys: | linux-build-${{ github.ref }} - linux-build + linux-build- path: | SDL2-2.28.5 SDL2_net-2.2.0 @@ -291,16 +295,15 @@ jobs: make -j 10 sudo make install sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ - # - name: Download 2ship.o2r - # uses: actions/download-artifact@v4 - # with: - # name: 2ship.o2r - # path: build-cmake/mm + - name: Download 2ship.o2r + uses: actions/download-artifact@v4 + with: + name: 2ship.o2r + path: build-cmake/mm - name: Build 2Ship run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1 - cmake --build build-cmake --config Release --target Generate2ShipOtr -j3 cmake --build build-cmake --config Release -j3 (cd build-cmake && cpack -G External) @@ -318,7 +321,7 @@ jobs: readme.txt build-windows: - # needs: generate-2ship-otr + needs: generate-2ship-otr runs-on: windows-latest steps: - name: Install dependencies @@ -329,39 +332,38 @@ jobs: with: submodules: true - name: ccache - uses: hendrikmuhs/ccache-action@v1.2.11 + uses: hendrikmuhs/ccache-action@v1.2.13 with: variant: sccache max-size: "1G" - key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }} + key: ${{ runner.os }}-ccache1-${{ github.ref }}-${{ github.sha }} restore-keys: | - ${{ runner.os }}-ccache-${{ github.ref }} - ${{ runner.os }}-ccache + ${{ runner.os }}-ccache1-${{ github.ref }} + ${{ runner.os }}-ccache1- - name: Cache build folder uses: actions/cache@v4 with: save-always: true - key: ${{ runner.os }}-build-${{ github.ref }}-${{ github.sha }} + key: ${{ runner.os }}-build1-${{ github.ref }}-${{ github.sha }} restore-keys: | - ${{ runner.os }}-build-${{ github.ref }} - ${{ runner.os }}-build + ${{ runner.os }}-build1-${{ github.ref }} + ${{ runner.os }}-build1- path: | build-windows vcpkg - name: Configure Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1 - # - name: Download 2ship.o2r - # uses: actions/download-artifact@v4 - # with: - # name: 2ship.o2r - # path: build-windows/mm + - name: Download 2ship.o2r + uses: actions/download-artifact@v4 + with: + name: 2ship.o2r + path: build-windows/mm - name: Build 2Ship - env: + env: VCPKG_ROOT: ${{github.workspace}}/vcpkg run: | set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH" - cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release - cmake --build build-windows --config Release --target Generate2ShipOtr --parallel 10 + cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache cmake --build build-windows --config Release --parallel 10 (cd build-windows && cpack) @@ -370,7 +372,6 @@ jobs: - name: Unzip package run: Expand-Archive -Path _packages/2ship-windows.zip -DestinationPath 2ship-windows - name: Upload build - if: ${{ startsWith(github.ref, 'refs/heads/develop') }} uses: actions/upload-artifact@v4 with: name: 2ship-windows diff --git a/.github/workflows/pr-artifacts.yml b/.github/workflows/pr-artifacts.yml index 43b985b5d..97209d74f 100644 --- a/.github/workflows/pr-artifacts.yml +++ b/.github/workflows/pr-artifacts.yml @@ -48,6 +48,7 @@ jobs: return allArtifacts.data.artifacts.reduce((acc, item) => { if (item.name === "assets") return acc; + it (item.name === "2ship.o2r") return acc; acc += ` - [${item.name}.zip](https://nightly.link/${context.repo.owner}/${context.repo.repo}/actions/artifacts/${item.id}.zip)`; return acc; |
