Release build squashed

This commit is contained in:
2024-06-29 13:45:23 -06:00
parent 2eb402ebb3
commit 86df5e0c53
4 changed files with 310 additions and 28 deletions

147
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,147 @@
on:
push:
branches:
- builds
- builds2
tags:
- "v*.*.*"
pull_request:
branches:
- builds
jobs:
release:
env:
BREW_PREFIX: ${{ matrix.os.name == 'macos' && matrix.os.version == '14' && 'arch -arm64' || ''}}
MACOSX_DEPLOYMENT_TARGET: 10.15
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
PROD_MACOS_CERTIFICATE: '${{ secrets.PROD_MACOS_CERTIFICATE }}'
PROD_MACOS_CERTIFICATE_PWD: '${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}'
PROD_MACOS_CERTIFICATE_NAME: '${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}'
PROD_MACOS_CI_KEYCHAIN_PWD: '${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}'
PROD_MACOS_NOTARIZATION_APPLE_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}'
PROD_MACOS_NOTARIZATION_TEAM_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}'
PROD_MACOS_NOTARIZATION_PWD: '${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}'
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
DEBUG_FLAG: ${{ matrix.configuration == 'Debug' && 'true' || 'false' }}
BUILD_OS: ${{ matrix.os.name }}
strategy:
fail-fast: false
matrix:
os:
- name: macos
suffix: '-intel'
version: 12
scons-script: './.github/workflows/scripts/mac/scons-build.sh'
path-separator: ':'
- name: macos
suffix: '-silicon'
version: 14
scons-script: './.github/workflows/scripts/mac/scons-build.sh'
path-separator: ':'
- name: ubuntu
suffix: ''
version: 22.04
scons-script: scons
path-separator: ':'
- name: windows
suffix: ''
version: 2019
scons-script: './.github/workflows/scripts/win/scons-build.bat'
path-separator: ';'
boost-version:
- 1.85.0
sfml-version:
- 2.6.1
configuration:
- Release
- Debug
runs-on: '${{ matrix.os.name }}-${{ matrix.os.version }}'
steps:
- run: echo $DEBUG_FLAG
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: "core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');"
- name: checkout
uses: actions/checkout@v4
with:
submodules: true
- name: CMake zlib for linux
run: cmake -S . -B build
working-directory: deps/zlib
if: ${{ matrix.os.name == 'ubuntu' }}
- name: CMake zlib for windows
run: cmake -S . -B build -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
working-directory: deps/zlib
if: ${{ matrix.os.name == 'windows' }}
- name: Build zlib for linux
run: make && sudo make install
working-directory: deps/zlib/build
if: ${{ matrix.os.name == 'ubuntu' }}
- name: Build zlib for windows
run: './.github/workflows/scripts/win/zlib-build.bat x64'
if: ${{ matrix.os.name == 'windows' }}
- name: Build Boost (fork)
id: boost-fork
uses: NQNStudios/build-boost@v1
with:
version: ${{ matrix.boost-version }}
libraries: filesystem system
platform: x64
configuration: ${{ matrix.configuration }}
static: ${{ matrix.os.name == 'windows' }}
if: ${{ matrix.os.name == 'macos' }}
- name: Build Boost
id: boost
uses: egor-tensin/build-boost@v1
with:
version: ${{ matrix.boost-version }}
libraries: filesystem system
platform: x64
configuration: ${{ matrix.configuration }}
static: ${{ matrix.os.name == 'windows' }}
if: ${{ matrix.os.name != 'macos' }}
- name: Build SFML
id: sfml
uses: NQNStudios/install-sfml@v1
with:
sfml: ${{ matrix.sfml-version }}
config: ${{ matrix.configuration }}
- name: Windows build dependencies
run: 'vcpkg install libxml2 && pip install scons'
if: ${{ matrix.os.name == 'windows' }}
- name: Mac build dependencies
run: brew install scons
if: ${{ matrix.os.name == 'macos' }}
- name: Linux build dependencies
run: sudo apt-get update && sudo apt-get install scons libxml2-utils zenity
if: ${{ matrix.os.name == 'ubuntu' }}
- name: Install TGUI
run: 'sudo ./.github/workflows/scripts/linux/install-tgui.sh'
if: ${{ matrix.os.name == 'ubuntu' }}
- name: Build
run: '${{ matrix.os.scons-script }} INCLUDEPATH="${{ steps.boost.outputs.root }}${{ steps.boost-fork.outputs.root }}${{ matrix.os.path-separator }}${{steps.sfml.outputs.path}}/include" LIBPATH="${{ steps.boost.outputs.librarydir }}${{ steps.boost-fork.outputs.librarydir }}${{ matrix.os.path-separator }}${{steps.sfml.outputs.path}}/lib${{ matrix.os.path-separator }}/usr/local/lib" FRAMEWORKPATH="${{steps.sfml.outputs.path}}/lib" test=false debug=$DEBUG_FLAG'
shell: bash
- name: Codesign and notarize
run: './.github/workflows/scripts/mac/sign-apps.sh'
if: ${{ matrix.os.name == 'macos' }}
- name: 'Tar files'
run: 'tar -cvf cboe-${{ matrix.os.name }}${{matrix.os.suffix}}-${{ matrix.configuration }}.tar "Blades of Exile"'
working-directory: '${{ github.workspace }}/build'
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: cboe-${{ matrix.os.name }}${{matrix.os.suffix}}-${{ matrix.configuration }}
path: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}${{matrix.os.suffix}}-${{ matrix.configuration }}.tar'
- name: Github release
uses: softprops/action-gh-release@v2
with:
files: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}${{matrix.os.suffix}}-${{ matrix.configuration }}.tar'
if: ${{ startsWith(github.ref, 'refs/tags/') }}
- name: 'Itch.io release'
run: './.github/workflows/scripts/butler_push.sh'
shell: bash
if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.configuration == 'Release' && matrix.os.name != 'macos' }}