A set of GitHub Actions to simplify Audacity build workflows. Most of these actions are written in JavaScript and require Node 16 to run.
It is possible to locally debug the actions by settings certain environment values:
GITHUB_WORKSPACE
: path to audacity source codeINPUT_*
: input value. For example, input namedconfiguration_types
can be passed usingINPUT_CONFIGURATION_TYPES
environment variable.- Variables, set by a previous step.
This action setups the environment required to build Audacity:
- Conan 1.43.2,
- Required Linux libraries when running on Linux.
This action allows switching to GCC11 on Linux using the force_gcc11
parameter.
This action is a "composite" action; it is impossible to debug it locally.
Configure Audacity using provided options:
generator
: CMake generator to use. Required.arch
: Host architecture (i. e., the resulting binaries architecture) in NodeJS format (x64
,x32
,arm64
). Windows builds supportx32
andx64
, macOS builds supportx64
andarm64
values. Optional. The default value is x64.build_level
: Audacity build level. Can be one ofalpha
,beta
, orrelease
. Optional. The default value isalpha
.configuration_types
: This value is used to initializeCMAKE_CONFIGURATION_TYPES
. Valid values are:Debug
,Release
,RelWithDebInfo
,MinSizeRel
or any combination concatenated with semicolon. Optional. The default value isRelWithDebInfo
.build_type
: CMake build type (or configuration) to use for the build. Valid values are:Debug
,Release
,RelWithDebInfo
,MinSizeRel
. Optional. The default value isRelWithDebInfo
.cmake_options
: Additional CMake options to pass to CMake. Optional.image_compiler
: Path to theimage-compiler
executable. Required when cross-compiling and the build platform can not run the application with host architecture. For example, when building for AppleSilicon on Intel Mac.windows_certificate
: Base 64 of PFX file with the code signing certificate on Windows. Optional.windows_certificate_password
: Password to the PFX file with the code signing certificate.apple_codesign_identity
: Apple code-signing identity. Optional.apple_notarization_user_name
: Apple notarization user name. Optional.apple_notarization_password
: Apple notarization password.
It is preferred to code sign the build on macOS during the package step.
This action sets the following environment variables:
AUDACITY_BUILD_DIR
: CMake build directory. Equals to.build.${arch}
.AUDACITY_BUILD_TYPE
: equals to the value ofbuild_type
.AUDACITY_BUILD_LEVEL
: numeric representation ofbuild_level
. 0 foralpha
, 1 forbeta
, 2 forrelease
.AUDACITY_ARCH
: equals to the value ofarch
.AUDACITY_CROSS_COMPILING
: equals to true if the host and build architectures do not match.
If during the configuration new Conan packages were built, the following will happen:
- On Windows, if
ARTIFACTORY_SYMBOLS_URL
andARTIFACTORY_SYMBOLS_KEY
are present in the environment - debug information will be uploaded to Artifactory in SymStore format. - When
SENTRY_AUTH_TOKEN
,SENTRY_HOST
,SENTRY_ORG_SLUG
, andSENTRY_PROJECT_SLUG
are present in the environment - debug and source information is uploaded to Sentry. - When
CONAN_BINARIES_REMOTE
,CONAN_LOGIN_USERNAME
, andCONAN_PASSWORD
are present in the environment - newly built binaries are uploaded to Conan.
Build Audacity. Allows setting the target with the optional parameter target
.
When SENTRY_AUTH_TOKEN
, SENTRY_HOST
, SENTRY_ORG_SLUG
, and SENTRY_PROJECT_SLUG
are present in the environment and build_level
is not alpha
- debug and source information is uploaded to Sentry.
Package Audacity and upload the resulting artifacts.
Supported parameters:
postfix
: a postfix to add to the artifact.cmake_options
: additional options to pass to CMake.
Action creates a zipped version of Audacity. If build_level
is not alpha
- action will generate an installer as well.
Action creates an AppImage.
On macOS, action can be parametrized:
apple_codesign_identity
: Apple code-signing identity. Optional.apple_notarization_user_name
: Apple notarization user name. Optional.apple_notarization_password
: Apple notarization password.archs
: list of architectures to package, in NodeJS format, one per line. If more than one architecture is provided, an universal binary will be created as well.
Update recipes in the specified remote using the current state of audacity/conan-recipes repository
Supported parameters:
recipes_remote
: "Recipes" only remote.login
: Conan login for the recipes_remote.password
: Conan password for the recipes_remote.default_channel
: Channel to generate package for.
Building a GitHub suitable package is only possible on macOS now.