mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-01-31 09:12:56 -05:00
- Simplify workflows build commands - Don't build ReadyToRun on validate - Move get-version into it's own job in build.yml - Split macOS into it's own reusable workflow - Add app bundle code signing - Add notarization
66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
# build.yml
|
|
# Reusable workflow that builds Libation for all platforms.
|
|
---
|
|
name: build
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
libation-version:
|
|
type: string
|
|
description: "Libation version number"
|
|
required: true
|
|
dotnet-version:
|
|
type: string
|
|
default: "9.x"
|
|
description: ".NET version to target"
|
|
run-unit-tests:
|
|
type: boolean
|
|
description: "Whether to run unit tests prior to publishing."
|
|
publish-r2r:
|
|
type: boolean
|
|
description: "Whether to publish assemblies as ReadyToRun."
|
|
retention-days:
|
|
type: number
|
|
description: "Number of days the artifacts are to be retained."
|
|
|
|
jobs:
|
|
windows:
|
|
uses: ./.github/workflows/build-windows.yml
|
|
with:
|
|
libation-version: ${{ inputs.libation-version }}
|
|
dotnet-version: ${{ inputs.dotnet-version }}
|
|
run-unit-tests: ${{ inputs.run-unit-tests }}
|
|
publish-r2r: ${{ inputs.publish-r2r }}
|
|
retention-days: ${{ inputs.retention-days }}
|
|
|
|
macOS:
|
|
strategy:
|
|
matrix:
|
|
architecture: [x64, arm64]
|
|
uses: ./.github/workflows/build-mac.yml
|
|
with:
|
|
libation-version: ${{ inputs.libation-version }}
|
|
dotnet-version: ${{ inputs.dotnet-version }}
|
|
run-unit-tests: ${{ inputs.run-unit-tests }}
|
|
publish-r2r: ${{ inputs.publish-r2r }}
|
|
retention-days: ${{ inputs.retention-days }}
|
|
architecture: ${{ matrix.architecture }}
|
|
secrets: inherit
|
|
|
|
linux:
|
|
strategy:
|
|
matrix:
|
|
OS: [Redhat, Debian]
|
|
architecture: [x64, arm64]
|
|
uses: ./.github/workflows/build-linux.yml
|
|
with:
|
|
libation-version: ${{ inputs.libation-version }}
|
|
dotnet-version: ${{ inputs.dotnet-version }}
|
|
run-unit-tests: ${{ inputs.run-unit-tests }}
|
|
publish-r2r: ${{ inputs.publish-r2r }}
|
|
retention-days: ${{ inputs.retention-days }}
|
|
architecture: ${{ matrix.architecture }}
|
|
OS: ${{ matrix.OS }}
|
|
|