re-enable macOS build and don't link Boost::stacktrace at all #25
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate Release | |
on: | |
push: | |
tags: [ '*.*.*' ] | |
workflow_dispatch: | |
inputs: | |
name: | |
description: 'Release Name' | |
required: false | |
default: '' | |
type: string | |
tag: # Target tag to make a release for | |
description: 'Release Tag ()' | |
required: false | |
default: '' | |
type: string | |
is-draft: # Input that selects whether to make a draft release or a public release | |
description: 'Make Draft Release' | |
required: false | |
default: true | |
type: boolean | |
is-prerelease: # Input that selects whether to make a pre-release or normal release | |
description: 'Make Pre-Release' | |
required: false | |
default: false | |
type: boolean | |
autogenerate: | |
description: 'Autogenerate Release Notes From Commits' | |
required: false | |
default: false | |
type: boolean | |
body: | |
description: 'Release Body Paragraph' | |
required: false | |
default: '' | |
env: | |
# [PROJECT_NAME] | |
# Currently this is used for the following scenarios: | |
# - Executable Name | |
# - Build Subdirectory Name | |
# - Archive Name Prefix | |
PROJECT_NAME: 'ARRCON' | |
BUILD_TYPE: Release | |
jobs: | |
create-binaries: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup Project Dependencies | |
run: | | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
sudo apt-get install -y gcc-12 cmake ninja-build | |
gcc -v | |
elif [ "$RUNNER_OS" == "macOS" ]; then | |
brew install gcc@10 cmake ninja | |
elif [ "$RUNNER_OS" == "Windows" ]; then | |
choco install ninja | |
fi | |
shell: bash | |
- if: ${{ runner.os == 'Windows' }} | |
uses: ilammy/[email protected] | |
# Configure CMake Cache | |
# Windows | |
- name: Configure CMake (Windows) | |
if: ${{ runner.os == 'Windows' }} | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja | |
# Linux/macOS | |
- name: Configure CMake (Linux/macOS) | |
if: ${{ runner.os != 'Windows' }} | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
# Build Binary | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
# Create Packaged Release Archive | |
# Windows | |
- name: Create Archive (Windows) | |
if: ${{ runner.os == 'Windows' }} | |
run: | | |
cd "${{github.workspace}}/build/${{env.PROJECT_NAME}}" | |
Compress-Archive "${{env.PROJECT_NAME}}.exe" "${{env.PROJECT_NAME}}-$(.\${{env.PROJECT_NAME}} -vq)-Windows.zip" | |
shell: powershell | |
# Linux / macOS | |
- name: Create Archive (Linux/macOS) | |
if: ${{ runner.os != 'Windows' }} | |
run: | | |
cd "${{github.workspace}}/build/${{env.PROJECT_NAME}}" | |
zip -T9 "${{env.PROJECT_NAME}}-$(./${{env.PROJECT_NAME}} -vq)-${{runner.os}}.zip" "${{env.PROJECT_NAME}}" | |
shell: bash | |
# Upload Artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: latest-${{runner.os}} | |
path: '${{github.workspace}}/build/${{env.PROJECT_NAME}}/*.zip' | |
#:create-binaries | |
create-release: | |
needs: create-binaries | |
runs-on: ubuntu-latest | |
steps: | |
# Download Artifacts | |
- name: 'Download Build Artifacts' | |
uses: actions/download-artifact@v2 | |
# Retrieve the latest git tag if this was triggered by a tag | |
- name: 'Get Release Tag' | |
id: get_version | |
run: | | |
if [ "${{github.event.inputs.tag}}" == "" ]; then TAG="${GITHUB_REF/refs\/tags\//}"; else TAG="${{github.event.inputs.tag}}" ; fi | |
echo ::set-output name=VERSION::$TAG | |
# Stage downloaded build artifacts for deployment | |
- name: 'Stage Archives' | |
run: | | |
cd ${{github.workspace}} | |
if mv ./latest-*/* ./ ; then ls -lAgh ; else ls -lAghR ; fi | |
shell: bash | |
# Upload Release | |
- name: 'Create Release' | |
#if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: ${{ github.event.inputs.is-draft || true }} | |
prerelease: ${{ github.event.inputs.is-prerelease || false }} | |
tag_name: ${{ steps.get_version.outputs.VERSION }} | |
generate_release_notes: ${{ github.event.inputs.autogenerate || true }} | |
body: ${{ github.event.inputs.body || '' }} | |
fail_on_unmatched_files: true | |
files: ${{github.workspace}}/*.zip | |
#:create-release |