Shared utility actions for HathiTrust GitHub repositories.
See .github/workflows/test.yaml for minimalistic usage examples.
See individual actions for documentation on their parameters.
See test/README.md for examples of how to test and run actions locally with act.
Uses git rev-parse
to verify and expand a potentially ambiguous Git tag into
something usable by other actions. Used by the build
action.
Builds a Docker image for an arbitrary revision, branch, or GitHub repository
tag and pushes it to a repository. Uses the validate-tag
action above to
resolve the tag to a particular commit to check out and build.
For example, an action that allows building an image for an arbitrary tag, branch, or revision and pushing that image might be:
on:
workflow_dispatch:
inputs:
tag:
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: hathitrust/github_actions/build@v1
with:
image: ghcr.io/${{ github.repository }}
dockerfile: Dockerfile.prod
tag: ${{ github.sha }}
registry_token: ${{ github.token }}
Given an input tag some-branch
which resolves is currently at revision
451ba479cce63ab5c0e87a5c723e373d920d3406
, this would build that revision,
then push that image to GHCR with tags for
ghcr.io/organization/package-unstable:some-branch
as well as
ghcr.io/organization/package-unstable:451ba479cce63ab5c0e87a5c723e373d920d3406
.
Typically used in release workflows for applying that version tag to a "production" version of the image, for example:
on:
release:
types: [ released ]
jobs:
tag_release:
runs-on: ubuntu-latest
steps:
- uses: hathitrust/github-actions/tag-release@v1
with:
registry_token: ${{ secrets.GITHUB_TOKEN }}
existing_tag: ghcr.io/organization/package-unstable:${{ github.sha }}
image: ghcr.io/organization/package
new_tag: ${{ github.event.release.tag_name }}
This workflow will wait for existing_tag
to exist in the registry; by default
it checks once per minute and waits up to 10 minutes total.