You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Publishes precompiled artifacts to GitHub Releases
Usage
Basic CI (build, test, lint)
# .github/workflows/ci.yml in your reponame: CIon:
push:
branches: [master]pull_request:
jobs:
build_test:
uses: membraneframework/membrane_actions/.github/workflows/build-test.yml@maintest:
uses: membraneframework/membrane_actions/.github/workflows/test.yml@mainlint:
uses: membraneframework/membrane_actions/.github/workflows/lint.yml@main
Customizing inputs
jobs:
lint:
uses: membraneframework/membrane_actions/.github/workflows/lint.yml@mainwith:
dialyzer: false # disable Dialyzerdocs: false # disable docs checkcache-version: 2# bust all cachescontainer-image: elixir:1.18 # use plain elixir image instead of docker_membrane
Publishing to hex.pm
jobs:
hex_publish:
uses: membraneframework/membrane_actions/.github/workflows/hex-publish.yml@mainsecrets:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}# Or pass all secrets automatically:# secrets: inherit
Precompiling native libraries and publishing a GitHub Release
Artifact sharing requires all precompile + publish jobs to be in one coordinator workflow (same workflow run). The publish job downloads all artifacts uploaded by the precompile jobs.
Each workflow uses caches keyed by cache-version. To invalidate all caches (e.g. after adding a native dependency), increment cache-version:
with:
cache-version: 2
Notes
use-build-cache save pattern: The composite action only restores the build cache. Workflows that need to save the build cache call actions/cache/save@v4 explicitly after compilation, using the cache-key output from the action. This is why you may see separate save steps in the workflow files.
Artifact sharing: Precompile and publish jobs must run in the same workflow (same workflow_run) so they share the artifact store. Calling them from separate workflow files will not work.
runner.arch vs CircleCI arch: Build cache keys use runner.arch (X64, ARM64) rather than CircleCI's amd64/arm64. These caches are not interchangeable.