Release build squashed
This commit is contained in:
147
.github/workflows/release.yml
vendored
Normal file
147
.github/workflows/release.yml
vendored
Normal 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' }}
|
Reference in New Issue
Block a user