1
0
Fork 0
mirror of https://github.com/imjasonh/setup-crane synced 2026-07-06 22:52:45 +00:00
setup-crane/README.md

70 lines
2.3 KiB
Markdown
Raw Normal View History

2021-07-23 11:08:28 -04:00
# GitHub Action to install and setup [`crane`](https://github.com/google/go-containerregistry/cmd/crane/README.md)
[![Build](https://github.com/imjasonh/setup-crane/actions/workflows/use-action.yaml/badge.svg)](https://github.com/imjasonh/setup-crane/actions/workflows/use-action.yaml)
## Example usage
```yaml
name: Publish
on:
push:
branches: ['main']
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: 1.15
- uses: actions/checkout@v2
- uses: imjasonh/setup-crane@v0.1
- run: |
crane digest ubuntu
crane manifest ubuntu | jq
2021-07-23 11:52:13 -04:00
crane copy ubuntu ghcr.io/${{ github.repository }}/ubuntu-copy
2021-07-23 11:08:28 -04:00
```
_That's it!_ This workflow will inspect and copy the `ubuntu` image to your repo's GitHub container registry namespace.
The action works on Linux and macOS [runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners).
### Select `crane` version to install
By default, `imjasonh/setup-crane` installs the latest released version of `crane`.
You can select a version with the `version` parameter:
```yaml
- uses: imjasonh/setup-crane@v0.1
with:
version: v0.5.1
```
To build and install `crane` from source using `go get`, specify `version: tip`.
### Pushing to other registries
By default, `imjasonh/setup-crane` configures `crane` to authorize requests to [GitHub Container Registry](https://ghcr.io), but you can configure it to useuse other registries as well.
To do this, you need to provide credentials to authorize the push.
2021-07-23 11:12:07 -04:00
You can use [encrypted secrets](https://docs.github.com/en/actions/reference/encrypted-secrets) to store the authorization token, and pass it to `crane auth login` before pushing:
2021-07-23 11:08:28 -04:00
```
- uses: imjasonh/setup-crane@v0.1
- env:
auth_token: ${{ secrets.auth_token }}
run: |
2021-07-23 11:12:07 -04:00
echo "${auth_token}" | crane auth login https://my.registry --username my-username --password-stdin
2021-07-23 11:08:28 -04:00
crane digest my.registry/my/image
```
### A note on versioning
The `@v0.1` in the `uses` statement refers to the version _of the action definition in this repo._
Regardless of what version of the action definition you use, `imjasonh/setup-crane` will install the latest released version of `crane` unless otherwise specified with `version:`.