{"id":22423402,"url":"https://github.com/prantlf/shelve-output-action","last_synced_at":"2026-04-16T17:38:42.321Z","repository":{"id":200924035,"uuid":"706545201","full_name":"prantlf/shelve-output-action","owner":"prantlf","description":"GitHub action for shelving a build output, usually a binary executable, on each platform to cache, so that it can be unshelved later in the final job, which will produce a release for all platforms.","archived":false,"fork":false,"pushed_at":"2024-08-11T16:09:52.000Z","size":57,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T10:43:01.015Z","etag":null,"topics":["actions","github","github-actions","release","v","vlang"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/unshelve-build-output","language":"AMPL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prantlf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-18T06:54:40.000Z","updated_at":"2024-08-11T16:09:55.000Z","dependencies_parsed_at":"2023-12-15T23:54:59.763Z","dependency_job_id":"2be4aabb-b14b-410d-a438-36e1344ee21b","html_url":"https://github.com/prantlf/shelve-output-action","commit_stats":null,"previous_names":["prantlf/shelve-output-action"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fshelve-output-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fshelve-output-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fshelve-output-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prantlf%2Fshelve-output-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prantlf","download_url":"https://codeload.github.com/prantlf/shelve-output-action/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245791898,"owners_count":20672667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","github","github-actions","release","v","vlang"],"created_at":"2024-12-05T18:11:16.546Z","updated_at":"2026-04-16T17:38:37.271Z","avatar_url":"https://github.com/prantlf.png","language":"AMPL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shelve Build Output\n\nGitHub action for shelving a build output, usually a binary executable, on each platform to cache, so that it can be unshelved later in the final job by [unshelve-output-action], to be able to produce a release for all platforms.\n\nOnly platforms Linux, macOS, Windows on the architecture X64 are supported.\n\n## Usage\n\nPack the binary executable produced with the project name to the project root:\n\n```yml\n- uses: prantlf/shelve-output-action@v2\n```\n\nDepending on the platform, where the action is running, and the `name` of the executable, it will create one of the following archives and upload it to the cache. For example, for the name `newchanges`:\n\n|    OS   | Architecture |            Archive             |            Cache Key                 |\n|:--------|:-------------|:-------------------------------|:-------------------------------------|\n| Linux   |      X64     | `newchanges-linux-x64.zip`     | `newchanges-linux-x64.zip-{sha}`     |\n| Linux   |     ARM64    | `newchanges-linux-arm64.zip`   | `newchanges-linux-arm64.zip-{sha}`   |\n| Linux   |    RISCV64   | `newchanges-linux-riscv64.zip` | `newchanges-linux-riscv64.zip-{sha}` |\n| macOS   |     ARM64    | `newchanges-macos-arm64.zip`   | `newchanges-macos-arm64.zip-{sha}`   |\n| macOS   |      X64     | `newchanges-macos-x64.zip`     | `newchanges-macos-x64.zip-{sha}`     |\n| Windows |      X64     | `newchanges-windows-x64.zip`   | `newchanges-windows-x64.zip-{sha}`   |\n\nThe name and path to the executable can be specified by `path`. The name prefix of the archive can be specified by `name`, the full file name by `archive`. 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.\n\nUse a different name, platform and architecture in the package archive name than the defaults. Specify a custom path to the binary. Work only in specific release branches:\n\n```yml\njobs:\n  build:\n    steps:\n    - uses: actions/checkout@v4\n    - uses: prantlf/setup-v-action@v2\n    - run: ...\n    - uses prantlf/shelve-output-action@v2\n      with:\n        archive: vpm-ubuntu-amd64.zip\n        path: bin/vpm\n        branches: master v1.x\n```\n\n## Inputs\n\nThe following parameters can be specified using the `with` object:\n\n### name\n\nType: `String`\u003cbr\u003e\nDefault: (read from `v.mod`)\n\nThe 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 name of the archive will be `{name}-{os}-{arch}.zip`, for example: `newchanges-linux-x64.zip`.\n\n### archive\n\nType: `String`\u003cbr\u003e\nDefault: (read from `v.mod`)\n\nThe name of the archive to be created. The project name from `v.mod` will be used by default, if `name` isn't provided. The name of the archive will be `{name}-{os}-{arch}.zip`, for example: `newchanges-linux-x64.zip`.\n\n### os\n\nType: `String`\u003cbr\u003e\nDefault: (read from `runner.os`)\n\nOverride the operating system of the runner. Use if you are cross-compiling. Possible values: `linux`, `macos` and `windows`.\n\n### arch\n\nType: `String`\u003cbr\u003e\nDefault: (read from `runner.arch`)\n\nOverride the architecture of the runner. Use if you are cross-compiling. Possible values: `arm`, `arm64`, `riscv64`, `x64` and `x86`.\n\n### path\n\nType: `String`\u003cbr\u003e\nDefault: (read from `v.mod`)\n\nThe path to the binary file to package, on Windows including the `.exe` extension. The project name from `v.mod` will be used by default, with the file extension according to the platform (`.exe` will be appended on Windows).\n\n### extra\n\nType: `String`\u003cbr\u003e\n\nPaths to additional directories and files to include in the archive together with the binary executable. (No Windows support yet.)\n\n### branches\n\nType: `String`\u003cbr\u003e\nDefault: `'main master'`\n\nBranches 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 \"\u003e-\". If you want to allow all branches, set the value to \"*\".\n\n### enable\n\nType: `Boolean`\u003cbr\u003e\nDefault: `true`\n\nCan be set to `false` to prevent this action from packing the archive. 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.\n\n## Outputs\n\nThe following parameters can be accessed by the `github` context:\n\n### archive\n\nType: `String`\u003cbr\u003e\n\nThe name of the archive, which was created.\n\n### path\n\nType: `String`\u003cbr\u003e\n\nThe path to the file, which was packed.\n\n### cache-key\n\nType: `String`\u003cbr\u003e\n\nThe key, which was used to store the created archive to cache.\n\n## License\n\nCopyright (C) 2023-2024 Ferdinand Prantl\n\nLicensed under the [MIT License].\n\n[MIT License]: http://en.wikipedia.org/wiki/MIT_License\n[unshelve-output-action]: https://github.com/prantlf/unshelve-output-action\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprantlf%2Fshelve-output-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprantlf%2Fshelve-output-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprantlf%2Fshelve-output-action/lists"}