653 lines
20 KiB
YAML
653 lines
20 KiB
YAML
name: "Release Builds"
|
|
on:
|
|
push:
|
|
branches:
|
|
- v[0-9].[0-9]**
|
|
tags:
|
|
- v[0-9].[0-9]**
|
|
- v[0-9].[0-9]**-**
|
|
workflow_dispatch:
|
|
inputs:
|
|
custom-ref:
|
|
required: false
|
|
description: "Build release from git-ref:"
|
|
release-tag:
|
|
required: false
|
|
description: "Publish release to tag:"
|
|
developer:
|
|
default: false
|
|
type: boolean
|
|
description: "Developer build"
|
|
linux-x64:
|
|
default: true
|
|
type: boolean
|
|
macos-x64-arm64:
|
|
default: true
|
|
type: boolean
|
|
windows-x64:
|
|
default: true
|
|
type: boolean
|
|
windows-x86:
|
|
default: true
|
|
type: boolean
|
|
emscripten:
|
|
default: true
|
|
type: boolean
|
|
switch:
|
|
default: true
|
|
type: boolean
|
|
schedule:
|
|
# run every Wednesday at 8AM EST
|
|
- cron: '0 8 * * 3'
|
|
|
|
env:
|
|
REF: ${{ github.event.inputs.custom-ref || github.ref || 'master' }}
|
|
MESON_VERSION: '0.63.3'
|
|
EM_VERSION: '3.1.51'
|
|
PYTHON_VERSION: '3.11.8'
|
|
EM_CACHE_FOLDER: 'emsdk'
|
|
TAISEI_NOPRELOAD: 0
|
|
TAISEI_PRELOAD_REQUIRED: 1
|
|
GH_TOKEN: ${{ github.token }}
|
|
|
|
jobs:
|
|
setup-release:
|
|
name: "Setup release"
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 1
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Create release draft
|
|
run: |
|
|
if gh release view "${{ github.event.inputs.release-tag }}" &>/dev/null; then
|
|
echo "Release ${{ github.event.inputs.release-tag }}" already exists
|
|
else
|
|
gh release create --draft "${{ github.event.inputs.release-tag }}"
|
|
fi
|
|
|
|
linux-release-build-x64:
|
|
name: "Linux (x64/Source)"
|
|
if: ${{ (github.event.inputs.linux-x64 || 'true') == 'true' }}
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
|
|
- name: Install Tools
|
|
run: >
|
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
|
|
|
sudo apt update || true # debian cache is not atomic and can sometimes fail
|
|
|
|
sudo apt install -y -qq
|
|
build-essential
|
|
libsdl2-dev
|
|
libx11-dev
|
|
libwayland-dev
|
|
python3-docutils
|
|
gnupg
|
|
gcc-10
|
|
g++-10
|
|
|
|
sudo update-alternatives --install
|
|
/usr/bin/gcc gcc /usr/bin/gcc-10 60 --slave
|
|
/usr/bin/g++ g++ /usr/bin/g++-10
|
|
|
|
pip install
|
|
meson==${{ env.MESON_VERSION }}
|
|
ninja
|
|
zstandard
|
|
python-gnupg
|
|
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
# NOTE: 'fetch-depth: 0' == "get all history", not "no history"
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Configure
|
|
run: >
|
|
git config --global --add safe.directory $(pwd)
|
|
|
|
git fetch --force --tags # see: https://github.com/actions/checkout/issues/290
|
|
|
|
meson setup build/linux
|
|
--native-file misc/ci/common-options.ini
|
|
--native-file misc/ci/forcefallback.ini
|
|
--native-file misc/ci/linux-x86_64-build-release.ini
|
|
--prefix=$(pwd)/build-release
|
|
-Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}" # needs to be here as GITHUB_ENV doesn't update until the next step: https://github.com/github/docs/issues/7892
|
|
meson compile -C build/linux --verbose
|
|
meson install -C build/linux
|
|
|
|
- name: Unwanted Library Check
|
|
run: $(pwd)/scripts/smoke-test-standalone-linux-exe.py $(pwd)/build-release/taisei
|
|
|
|
- name: Run Test
|
|
run: $(pwd)/build-release/taisei -R $(pwd)/misc/ci/tests/test-replay.tsr
|
|
env:
|
|
TAISEI_NOPRELOAD: ${{ env.TAISEI_NOPRELOAD }}
|
|
TAISEI_PRELOAD_REQUIRED: ${{ env.TAISEI_PRELOAD_REQUIRED }}
|
|
|
|
- name: Package (Binary)
|
|
run: |
|
|
ninja txz -C build/linux --verbose
|
|
scripts/sign-release.py build/linux/Taisei-${{ env.BUILD_VERSION }}-linux-x86_64.tar.xz
|
|
|
|
- name: Upload Artifact (Binary)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: linux-x86_64-${{ env.BUILD_VERSION }}-txz
|
|
path: build/linux/Taisei-${{ env.BUILD_VERSION }}-linux-x86_64.tar.xz*
|
|
if-no-files-found: error
|
|
|
|
- name: Package (Source)
|
|
run: |
|
|
meson dist -C build/linux --no-tests # disable test build, since we already know it compiles
|
|
scripts/sign-release.py build/linux/meson-dist/taisei-${{ env.BUILD_VERSION }}.tar.xz
|
|
|
|
- name: Upload Artifact (Source)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: source-${{ env.BUILD_VERSION }}-txz
|
|
path: build/linux/meson-dist/taisei-${{ env.BUILD_VERSION }}.tar.xz*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build/linux/meson-dist/taisei-${{ env.BUILD_VERSION }}.tar.xz*
|
|
build/linux/Taisei-${{ env.BUILD_VERSION }}-linux-x86_64.tar.xz*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_x64_linux_release_log
|
|
path: build/linux/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|
|
|
|
macos-release-build-universal:
|
|
name: macOS (Universal)
|
|
if: ${{ (github.event.inputs.macos-x64-arm64 || 'true') == 'true' }}
|
|
runs-on: macos-12
|
|
steps:
|
|
- name: Install Tools
|
|
run: >
|
|
brew install
|
|
create-dmg
|
|
docutils
|
|
pygments
|
|
|
|
pip3 install
|
|
meson==${{ env.MESON_VERSION }}
|
|
ninja
|
|
python-gnupg
|
|
setuptools
|
|
zstandard
|
|
shell: bash
|
|
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Configure
|
|
run: |
|
|
git config --global --add safe.directory $(pwd)
|
|
git fetch --force --tags
|
|
$(pwd)/scripts/macos_configure_env.sh $(pwd)/build-release/ $(pwd)
|
|
$(pwd)/scripts/macos_setup_universal.sh -Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
shell: bash
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}"
|
|
$(pwd)/scripts/macos_build_universal.sh ${{ env.BUILD_VERSION }}
|
|
shell: bash
|
|
|
|
- name: Sign Release
|
|
run: |
|
|
scripts/sign-release.py build-release/compiled/Taisei-${{ env.BUILD_VERSION }}-universal.dmg
|
|
shell: bash
|
|
|
|
- name: Run Test
|
|
run: $(pwd)/build-release/compiled/combined/Taisei.app/Contents/MacOS/Taisei -R $(pwd)/misc/ci/tests/test-replay.tsr
|
|
env:
|
|
TAISEI_NOPRELOAD: ${{ env.TAISEI_NOPRELOAD }}
|
|
TAISEI_PRELOAD_REQUIRED: ${{ env.TAISEI_PRELOAD_REQUIRED }}
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: macos-universal-${{ env.BUILD_VERSION }}-dmg
|
|
path: build-release/compiled/Taisei-${{ env.BUILD_VERSION }}-universal.dmg*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build-release/compiled/Taisei-${{ env.BUILD_VERSION }}-universal.dmg*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_macos_universal_release_log
|
|
path: build-release/*/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|
|
|
|
windows-release-build-x64:
|
|
name: Windows (x64)
|
|
if: ${{ (github.event.inputs.windows-x64 || 'true') == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
container: taiseiproject/windows-toolkit:20240304
|
|
steps:
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Checkout ANGLE DLLs
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: taisei-project/angle-compiled
|
|
path: angle-compiled
|
|
|
|
- name: Configure
|
|
run: >
|
|
git config --global --add safe.directory $(pwd)
|
|
|
|
git fetch --force --tags
|
|
|
|
meson setup build/windows
|
|
-Dangle_libegl=$(pwd)/angle-compiled/lib/Windows-x64-dll/libEGL.dll
|
|
-Dangle_libgles=$(pwd)/angle-compiled/lib/Windows-x64-dll/libGLESv2.dll
|
|
--cross-file misc/ci/common-options.ini
|
|
--cross-file misc/ci/forcefallback.ini
|
|
--cross-file misc/ci/windows-llvm_mingw-x86_64-build-release.ini
|
|
--prefix=$(pwd)/build-release
|
|
-Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}"
|
|
meson compile -C build/windows
|
|
|
|
- name: Package (EXE)
|
|
run: |
|
|
ninja nsis -C build/windows --verbose
|
|
scripts/sign-release.py build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86_64.exe
|
|
|
|
- name: Upload Artifact (EXE)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: windows-x86_64-${{ env.BUILD_VERSION }}-setup-exe
|
|
path: build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86_64.exe*
|
|
if-no-files-found: error
|
|
|
|
- name: Package (ZIP)
|
|
run: |
|
|
ninja zip -C build/windows --verbose
|
|
scripts/sign-release.py build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86_64.zip
|
|
|
|
- name: Upload Artifact (ZIP)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: windows-x86_64-${{ env.BUILD_VERSION }}-zip
|
|
path: build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86_64.zip*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86_64.exe*
|
|
build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86_64.zip*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_windows_x64_release_log
|
|
path: build/windows/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|
|
|
|
windows-release-build-x86:
|
|
name: Windows (x86)
|
|
if: ${{ (github.event.inputs.windows-x86 || 'true') == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
container: taiseiproject/windows-toolkit:20240304
|
|
steps:
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Checkout ANGLE DLLs
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: taisei-project/angle-compiled
|
|
path: angle-compiled
|
|
|
|
- name: Configure
|
|
run: >
|
|
git config --global --add safe.directory $(pwd)
|
|
|
|
git fetch --force --tags
|
|
|
|
meson setup build/windows
|
|
-Dangle_libegl=$(pwd)/angle-compiled/lib/Windows-x86-dll/libEGL.dll
|
|
-Dangle_libgles=$(pwd)/angle-compiled/lib/Windows-x86-dll/libGLESv2.dll
|
|
--cross-file misc/ci/common-options.ini
|
|
--cross-file misc/ci/forcefallback.ini
|
|
--cross-file misc/ci/windows-llvm_mingw-x86-build-release.ini
|
|
--prefix=$(pwd)/build-release
|
|
-Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}"
|
|
meson compile -C build/windows
|
|
|
|
- name: Package (EXE)
|
|
run: |
|
|
ninja nsis -C build/windows --verbose
|
|
scripts/sign-release.py build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86.exe
|
|
|
|
- name: Upload Artifact (EXE)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: windows-x86-${{ env.BUILD_VERSION }}-setup-exe
|
|
path: build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86.exe*
|
|
if-no-files-found: error
|
|
|
|
- name: Package (ZIP)
|
|
run: |
|
|
ninja zip -C build/windows --verbose
|
|
scripts/sign-release.py build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86.zip
|
|
|
|
- name: Upload Artifact (ZIP)
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: windows-x86-${{ env.BUILD_VERSION }}-zip
|
|
path: build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86.zip*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build/windows/Taisei-${{ env.BUILD_VERSION }}-setup-x86.exe*
|
|
build/windows/Taisei-${{ env.BUILD_VERSION }}-windows-x86.zip*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_windows_x86_release_log
|
|
path: build/windows/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|
|
|
|
emscripten-release-build:
|
|
name: Emscripten
|
|
if: ${{ (github.event.inputs.emscripten || 'true') == 'true' }}
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Install Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
|
|
- name: Install Tools
|
|
run: >
|
|
sudo apt update || true
|
|
|
|
sudo apt install -y -qq
|
|
python3-docutils
|
|
python3-pip
|
|
git
|
|
gnupg
|
|
|
|
pip install
|
|
meson==${{ env.MESON_VERSION }}
|
|
ninja
|
|
zstandard
|
|
python-gnupg
|
|
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Fetch Cached Emscripten SDK
|
|
id: emsdk-cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ${{ env.EM_CACHE_FOLDER }}
|
|
key: ${{ env.EM_VERSION }}-${{ runner.os }}
|
|
|
|
- name: Install Emscripten SDK
|
|
if: steps.emsdk-cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
rm -rf ./${{ env.EM_CACHE_FOLDER }}/
|
|
git clone https://github.com/emscripten-core/emsdk.git
|
|
${{ env.EM_CACHE_FOLDER }}/emsdk install ${{ env.EM_VERSION }}
|
|
${{ env.EM_CACHE_FOLDER }}/emsdk activate ${{ env.EM_VERSION }}
|
|
|
|
- name: Verify Emscripten SDK
|
|
run: |
|
|
source ${{ env.EM_CACHE_FOLDER }}/emsdk_env.sh
|
|
emcc -v
|
|
tee misc/ci/emscripten-ephemeral-ci.ini <<EOF >/dev/null
|
|
[constants]
|
|
toolchain = '$(pwd)/${{ env.EM_CACHE_FOLDER }}/upstream/emscripten/'
|
|
EOF
|
|
|
|
- name: Configure
|
|
run: >
|
|
git config --global --add safe.directory $(pwd)
|
|
|
|
git fetch --force --tags
|
|
|
|
source ${{ env.EM_CACHE_FOLDER }}/emsdk_env.sh
|
|
|
|
meson setup build/emscripten
|
|
--cross-file misc/ci/common-options.ini
|
|
--cross-file misc/ci/forcefallback.ini
|
|
--cross-file misc/ci/emscripten-build.ini
|
|
--cross-file misc/ci/emscripten-ephemeral-ci.ini
|
|
--prefix=$(pwd)/build-release
|
|
-Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}"
|
|
source ${{ env.EM_CACHE_FOLDER }}/emsdk_env.sh
|
|
meson compile -C build/emscripten --verbose
|
|
|
|
- name: Package
|
|
run: |
|
|
source ${{ env.EM_CACHE_FOLDER }}/emsdk_env.sh
|
|
ninja txz -C build/emscripten --verbose
|
|
scripts/sign-release.py build/emscripten/Taisei-${{ env.BUILD_VERSION }}-emscripten-wasm32.tar.xz
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: emscripten-wasm32-${{ env.BUILD_VERSION }}-txz
|
|
path: build/emscripten/Taisei-${{ env.BUILD_VERSION }}-emscripten-wasm32.tar.xz*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build/emscripten/Taisei-${{ env.BUILD_VERSION }}-emscripten-wasm32.tar.xz*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_emscripten_build_log
|
|
path: build/emscripten/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|
|
|
|
switch-release-build:
|
|
name: Switch (ARM64)
|
|
if: ${{ (github.event.inputs.switch || 'true') == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
container: taiseiproject/switch-toolkit:20240305
|
|
steps:
|
|
- name: Import GPG Key
|
|
uses: taisei-project/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
ref: ${{ env.REF }}
|
|
|
|
- name: Configure
|
|
run: >
|
|
git config --global --add safe.directory $(pwd)
|
|
|
|
git fetch --force --tags
|
|
|
|
switch/crossfile.sh > misc/ci/switch-crossfile-ci.ini
|
|
|
|
meson setup build/nx
|
|
--cross-file misc/ci/common-options.ini
|
|
--cross-file misc/ci/switch-options.ini
|
|
--cross-file misc/ci/switch-crossfile-ci.ini
|
|
--prefix=$(pwd)/build-release
|
|
-Ddeveloper=${{ github.event.inputs.developer || 'false' }}
|
|
|
|
- name: Set Package Version
|
|
run: |
|
|
echo BUILD_VERSION=$($(pwd)/scripts/version.py) >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Build
|
|
run: |
|
|
echo "Version set to ${{ env.BUILD_VERSION }}"
|
|
meson compile -C build/nx --verbose
|
|
|
|
- name: Package
|
|
run: |
|
|
ninja zip -C build/nx --verbose
|
|
scripts/sign-release.py build/nx/Taisei-${{ env.BUILD_VERSION }}-switch-aarch64.zip
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: success()
|
|
with:
|
|
name: switch-aarch64-${{ env.BUILD_VERSION }}-zip
|
|
path: build/nx/Taisei-${{ env.BUILD_VERSION }}-switch-aarch64.zip*
|
|
if-no-files-found: error
|
|
|
|
- name: Upload Release Artifacts
|
|
if: ${{ github.event.inputs.release-tag }}
|
|
run: >
|
|
gh release upload "${{ github.event.inputs.release-tag }}"
|
|
build/nx/Taisei-${{ env.BUILD_VERSION }}-switch-aarch64.zip*
|
|
|
|
- name: Upload Log
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: taisei_switch_release_log
|
|
path: build/nx/meson-logs/meson-log.txt
|
|
if-no-files-found: warn
|