/unshelve-output-action

GitHub action for unshelving a build output from the cache, where it was shelved by shelve-output-action, to be able to upload it as artefacts for a new release.

Primary LanguageAMPLMIT LicenseMIT

Unshelve Build Output

GitHub action for unshelving a build output from the cache, where it was shelved by shelve-output-action, to be able to upload it as artefacts for a new release.

Only platforms Linux, macOS, Windows on the architecture X64 are supported.

Usage

Download archives with binary executables produced on each platform and shelved earlier to the project root and delete the shelf from the cache:

- uses: prantlf/unshelve-output-action@v5

Depending on the name of the executable, it will download the following archives from the cache. For example, for the name newchanges:

OS Architecture Archive Cache Key
Linux ARM64 newchanges-linux-arm64.zip newchanges-linux-arm64.zip-{sha}
Linux X64 newchanges-linux-x64.zip newchanges-linux-x64.zip-{sha}
macOS ARM64 newchanges-macos-arm64.zip newchanges-macos-arm64.zip-{sha}
macOS X64 newchanges-macos-x64.zip newchanges-macos-x64.zip-{sha}
Windows X64 newchanges-windows-x64.zip newchanges-windows-x64.zip-{sha}

The name prefix of the archives can be specified by name. If not specified, it will be inferred from the project configuration (v.mod). The {sha} in the cache key is the SHA-1 hash of the current commit.

Use a different name prefix than the default in the package archive name. Work only in specific release branches. Prevent deletion the shelf from the cache. Ignore the archive for macOS ARM64:

jobs:
  release:
    steps:
    ...
    - uses: prantlf/unshelve-output-action@v5
      with:
        name: vpm
        branches: master v1.x
        discard-shelf: false
        include-macos-arm64: false

Inputs

The following parameters can be specified using the with object:

name

Type: String
Default: (read from v.mod)

The name of the archive without the platform and architecture and without the .zip extension. The project name from v.mod will be used by default. The expected names of the archives will be {name}-{os}-{arch}.zip, for example: newchanges-linux-x64.zip.

branches

Type: String
Default: 'main master'

Branches which this action should run for, which are used to publishing releases. Use whitespace for separating the branch names. If you want to use multiple lines in YAML, introduce them with ">-". If you want to allow all branches, set the value to "*".

enable

Type: Boolean
Default: true

Can be set to false to prevent this action from downloading the archives. It's helpful in the pipeline, which will not continue releasing, but only building and testing, and that will be decided in the middle of a job execution.

include-linux

Type: Boolean
Default: true

Include the archive for Linux ARM64 and X64.

include-linux-arm64

Type: Boolean
Default: true

Include the archive for Linux ARM64.

include-linux-x64

Type: Boolean
Default: true

Include the archive for Linux X64.

include-macos

Type: Boolean
Default: true

Include archives for macOS ARM64 and X64.

include-macos-arm64

Type: Boolean
Default: true

Include the archive for macOS ARM64.

include-macos-x64

Type: Boolean
Default: true

Include the archive for macOS X64.

include-windows

Type: Boolean
Default: true

Include the archive for Windows.

discard-shelf

Type: Boolean
Default: true

Can be set to false to prevent automatic discarding of the shelved files from the cache.

License

Copyright (C) 2023 Ferdinand Prantl

Licensed under the MIT License.