simplify ci (#4129)

This commit is contained in:
briaguya 2024-05-09 21:45:21 -04:00 committed by GitHub
parent 47b690fb1e
commit 5530ce2e61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 76 deletions

View file

@ -7,7 +7,7 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
generate-soh-otr: generate-soh-otr:
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }} runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -20,7 +20,6 @@ jobs:
${{ runner.os }}-otr-ccache-${{ github.ref }} ${{ runner.os }}-otr-ccache-${{ github.ref }}
${{ runner.os }}-otr-ccache- ${{ runner.os }}-otr-ccache-
- name: Install dependencies - name: Install dependencies
if: ${{ !vars.LINUX_RUNNER }}
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
@ -35,7 +34,6 @@ jobs:
build-cmake build-cmake
SDL2-2.28.5 SDL2-2.28.5
- name: Install latest SDL - name: Install latest SDL
if: ${{ !vars.LINUX_RUNNER }}
run: | run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "SDL2-2.28.5" ]; then if [ ! -d "SDL2-2.28.5" ]; then
@ -73,47 +71,44 @@ jobs:
retention-days: 1 retention-days: 1
build-macos: build-macos:
needs: generate-soh-otr needs: generate-soh-otr
runs-on: ${{ (vars.MAC_RUNNER && fromJSON(vars.MAC_RUNNER)) || 'macos-12' }} runs-on: macos-14
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
submodules: true submodules: true
- name: ccache - name: ccache
uses: hendrikmuhs/ccache-action@v1.2.11 uses: hendrikmuhs/ccache-action@v1.2.13
with: with:
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }} create-symlink: true
key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: | restore-keys: |
${{ runner.os }}-ccache-${{ github.ref }} ${{ runner.os }}-14-ccache-${{ github.ref }}
${{ runner.os }}-ccache- ${{ runner.os }}-14-ccache-
- name: Install gtar wrapper - name: Install gtar wrapper
if: ${{ !vars.MAC_RUNNER }}
run: | run: |
sudo mv /usr/local/bin/gtar /usr/local/bin/gtar.orig sudo mv /opt/homebrew/bin/gtar /opt/homebrew/bin/gtar.orig
sudo cp .github/workflows//gtar /usr/local/bin/gtar sudo cp .github/workflows//gtar /opt/homebrew/bin/gtar
sudo chmod +x /usr/local/bin/gtar sudo chmod +x /opt/homebrew/bin/gtar
- name: Cache MacPorts - name: Cache MacPorts
id: cache-macports id: cache-macports
if: ${{ !vars.MAC_RUNNER }}
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: /opt/local/ 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: | restore-keys: |
${{ runner.os }}-macports- ${{ runner.os }}-14-macports-
- name: Install MacPorts (if necessary) - name: Install MacPorts (if necessary)
if: ${{ !vars.MAC_RUNNER }}
run: | run: |
if [ -d /opt/local/ ]; then if [ -d /opt/local/ ]; then
echo "MacPorts already installed" echo "MacPorts already installed"
else else
wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-12-Monterey.pkg wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg
sudo installer -pkg ./MacPorts-2.9.3-12-Monterey.pkg -target / sudo installer -pkg ./MacPorts-2.9.3-14-Sonoma.pkg -target /
fi fi
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
- name: Install dependencies - name: Install dependencies
if: ${{ !vars.MAC_RUNNER }}
run: | run: |
brew uninstall --ignore-dependencies libpng libzip brew uninstall --ignore-dependencies libpng
sudo port install $(cat .github/workflows/macports-deps.txt) sudo port install $(cat .github/workflows/macports-deps.txt)
brew install ninja brew install ninja
- name: Download soh.otr - name: Download soh.otr
@ -122,7 +117,6 @@ jobs:
name: soh.otr name: soh.otr
- name: Build SoH - name: Build SoH
run: | 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" -DBUILD_REMOTE_CONTROL=1 cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
cmake --build build-cmake --config Release --parallel 10 cmake --build build-cmake --config Release --parallel 10
mv soh.otr build-cmake/soh mv soh.otr build-cmake/soh
@ -139,45 +133,33 @@ jobs:
readme.txt readme.txt
build-linux: build-linux:
needs: generate-soh-otr needs: generate-soh-otr
strategy: runs-on: ubuntu-22.04
fail-fast: true
matrix:
include:
- os: ubuntu-20.04
gcc: 10
archive-suffix: compatibility
- os: ubuntu-22.04
gcc: 12
archive-suffix: performance
runs-on: ${{ (matrix.os == 'ubuntu-20.04' && ((vars.LINUX_COMPATIBILITY_RUNNER && fromJSON(vars.LINUX_COMPATIBILITY_RUNNER)) || matrix.os)) || (matrix.os == 'ubuntu-22.04' && ((vars.LINUX_PERFORMANCE_RUNNER && fromJSON(vars.LINUX_PERFORMANCE_RUNNER)) || matrix.os)) }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
submodules: true submodules: true
- name: Install dependencies - name: Install dependencies
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
- name: ccache - name: ccache
uses: hendrikmuhs/ccache-action@v1.2.11 uses: hendrikmuhs/ccache-action@v1.2.11
with: with:
key: ${{ matrix.os }}-ccache-${{ github.ref }}-${{ github.sha }} key: linux-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: | restore-keys: |
${{ matrix.os }}-ccache-${{ github.ref }} linux-ccache-${{ github.ref }}
${{ matrix.os }}-ccache- linux-ccache-
- name: Cache build folders - name: Cache build folders
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
key: ${{ matrix.os }}-build-${{ github.ref }}-${{ github.sha }} key: linux-build-${{ github.ref }}-${{ github.sha }}
restore-keys: | restore-keys: |
${{ matrix.os }}-build-${{ github.ref }} linux-build-${{ github.ref }}
${{ matrix.os }}-build- linux-build-
path: | path: |
SDL2-2.28.5 SDL2-2.28.5
SDL2_net-2.2.0 SDL2_net-2.2.0
- name: Install latest SDL - name: Install latest SDL
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: | run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "SDL2-2.28.5" ]; then if [ ! -d "SDL2-2.28.5" ]; then
@ -189,38 +171,7 @@ jobs:
make -j 10 make -j 10
sudo make install sudo make install
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
- name: Install latest libzip
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) }}
run: |
sudo apt-get remove libzip-dev zipcmp zipmerge ziptool
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "libzip-1.10.1" ]; then
wget https://libzip.org/download/libzip-1.10.1.tar.gz
tar -xzvf libzip-1.10.1.tar.gz
fi
cd libzip-1.10.1
mkdir build
cd build
cmake ..
make
sudo make install
- name: Install latest nlohmann
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) }}
run: |
sudo apt-get remove nlohmann-json3-dev
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "json-3.11.3" ]; then
wget https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz
tar -xzvf v3.11.3.tar.gz
fi
cd json-3.11.3
mkdir build
cd build
cmake ..
make
sudo make install
- name: Install latest tinyxml2 - name: Install latest tinyxml2
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: | run: |
sudo apt-get remove libtinyxml2-dev sudo apt-get remove libtinyxml2-dev
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
@ -235,7 +186,6 @@ jobs:
make make
sudo make install sudo make install
- name: Install latest SDL_net - name: Install latest SDL_net
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: | run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "SDL2_net-2.2.0" ]; then if [ ! -d "SDL2_net-2.2.0" ]; then
@ -261,12 +211,12 @@ jobs:
mv README.md readme.txt mv README.md readme.txt
mv build-cmake/*.appimage soh.appimage mv build-cmake/*.appimage soh.appimage
env: env:
CC: gcc-${{ matrix.gcc }} CC: gcc-12
CXX: g++-${{ matrix.gcc }} CXX: g++-12
- name: Upload build - name: Upload build
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: soh-linux-${{ matrix.archive-suffix }} name: soh-linux
path: | path: |
soh.appimage soh.appimage
readme.txt readme.txt

View file

@ -1,2 +1,2 @@
#!/bin/sh #!/bin/sh
exec sudo /usr/local/bin/gtar.orig "$@" exec sudo /opt/homebrew/bin/gtar.orig "$@"