Coder Social home page Coder Social logo

vsverchinsky / audacity-actions Goto Github PK

View Code? Open in Web Editor NEW

This project forked from audacity/audacity-actions

1.0 0.0 0.0 2.83 MB

GitHub Actions for Audacity

License: BSD 3-Clause "New" or "Revised" License

Shell 1.52% JavaScript 95.96% Python 2.51%

audacity-actions's Introduction

audacity-actions

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 code
  • INPUT_*: input value. For example, input named configuration_types can be passed using INPUT_CONFIGURATION_TYPES environment variable.
  • Variables, set by a previous step.

audacity/audacity-actions/dependencies@v1

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.

audacity/audacity-actions/configure@v1

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 support x32 and x64, macOS builds support x64 and arm64 values. Optional. The default value is x64.
  • build_level: Audacity build level. Can be one of alpha, beta, or release. Optional. The default value is alpha.
  • configuration_types: This value is used to initialize CMAKE_CONFIGURATION_TYPES. Valid values are: Debug, Release, RelWithDebInfo, MinSizeRel or any combination concatenated with semicolon. Optional. The default value is RelWithDebInfo.
  • build_type: CMake build type (or configuration) to use for the build. Valid values are: Debug, Release, RelWithDebInfo, MinSizeRel. Optional. The default value is RelWithDebInfo.
  • cmake_options: Additional CMake options to pass to CMake. Optional.
  • image_compiler: Path to the image-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 of build_type.
  • AUDACITY_BUILD_LEVEL: numeric representation of build_level. 0 for alpha, 1 for beta, 2 for release.
  • AUDACITY_ARCH: equals to the value of arch.
  • 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 and ARTIFACTORY_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, and SENTRY_PROJECT_SLUG are present in the environment - debug and source information is uploaded to Sentry.
  • When CONAN_BINARIES_REMOTE, CONAN_LOGIN_USERNAME, and CONAN_PASSWORD are present in the environment - newly built binaries are uploaded to Conan.

audacity/audacity-actions/build@v1

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.

audacity/audacity-actions/package@v1

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.

Windows

Action creates a zipped version of Audacity. If build_level is not alpha - action will generate an installer as well.

Linux

Action creates an AppImage.

macOS

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.

audacity/audacity-actions/update_recipes@v1

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 Actions

Building a GitHub suitable package is only possible on macOS now.

audacity-actions's People

Contributors

crsib avatar vsverchinsky avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.