📦 GitHub Action for installing the crane CLI tool
APACHE-2.0 License
This Action downloads
crane
and adds it to your PATH
, with optional signature verification if you use the
SLSA Verifier.
For a quick start guide on the usage of crane
, refer to
its documentation.
For available crane
releases, refer to
its releases.
This action supports Linux, macOS and Windows runners (results may vary with self-hosted runners).
- name: Install crane
uses: iarekylew00t/crane-installer@v3
[!NOTE]
slsa-verifier
must be in yourPATH
for signature verification or it will be skipped - See Automatic verification with SLSA Verifier. Ifcrane
is loaded from cache it will not be re-verified.
Name | Type | Description | Default |
---|---|---|---|
crane-release |
String |
crane release version to be installed |
latest |
verify |
Boolean | Perform signature verification on crane
|
true |
cache |
Boolean | Whether to utilize cache with crane
|
true |
token |
String | GitHub token for REST API access | ${{ github.token }} |
Name | Type | Description |
---|---|---|
version |
String | The version of crane the was installed |
cache-hit |
Boolean | If crane was installed via cache |
- name: Install crane
uses: iarekylew00t/crane-installer@v3
with:
crane-release: v0.20.2
- name: Install crane
uses: iarekylew00t/crane-installer@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
crane
- name: Install crane
uses: iarekylew00t/crane-installer@v3
- name: Login to DockerHub
run: |
echo "${{ secrets.DOCKERHUB_TOKEN }}" | \
crane auth login docker.io \
--user "${{ vars.DOCKERHUB_USERNAME }}" \
--pass-stdin
- name: Login to GHCR
run: |
echo "${{ github.token }}" | \
crane auth login ghcr.io \
--user "${{ github.actor }}" \
--pass-stdin
- name: Install SLSA verifier
uses: slsa-framework/slsa-verifier/actions/[email protected]
- name: Install crane
uses: iarekylew00t/crane-installer@v3
[!CAUTION]
Since this is a TypeScript action you must transpile it into native JavaScript. This is done for you automatically as part of the
npm run all
command and will be validated via thecheck-dist.yml
Workflow in any PR.
⚙️ Install the version of Node.js as defined in the
.node-version
.
You can use asdf to help manage your
project runtimes.
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf install
🛠️ Install dependencies
npm install
🏗️ Format, lint, test, and package your code changes.
npm run all
For maintainers, the following release process should be used when cutting new versions.
⏬ Ensure all changes are in the main
branch and all necessary
Workflows are
passing.
git checkout main
git pull
✅ Ensure the package.json
and
package-lock.json
files are updated to with the new
version being cut.
npm update
🔖 Create a new Tag, push it up, then create a new Release for the version.
git tag v1.2.3
git push -u origin v1.2.3
Alternatively you can create the Tag on the GitHub Release page itself.
When the tag is pushed it will kick off the
Shared Tags
Workflows to update the v$MAJOR
and v$MAJOR.MINOR
tags.
Feel free to contribute and make things better by opening an Issue or Pull Request. Thank you for your contribution! ❤️
See LICENSE.