This is a draft document to describe the release process for the scorecard GitHub Action.
(If there are improvements you'd like to see, please comment on the tracking issue or issue a pull request to discuss.)
As the first task, a Release Manager should open a tracking issue for the release.
We don't currently have a template for releasing, but the following issue is a good example to draw inspiration from.
We're not striving for perfection with the template, but the tracking issue will serve as a reference point to aggregate feedback, so try your best to be as descriptive as possible.
This section covers changes that need to be issued as a pull request and should be merged before releasing the scorecard GitHub Action.
Manually run the workflow scorecards.yml and verify that the run succeeds.
NOTE: we have a chicken-and-egg problem where the commit to be used for the release needs to have the image tag that only gets created after the commit is pushed. We workaround that by pre-selecting and referencing the image tag instead of the SHA which isn't ideal but workable.
Pre-select the tag which will be used for the release. For this document, we'll use: Tag
.
Update the image tag in action.yaml to use Tag
.
Example:
runs:
using: "docker"
image: "docker://gcr.io/openssf/scorecard-action:Tag"
Create a pull request with this change and merge into main
.
Locally, create a signed tag Tag
on commitSHA SHA
:
git remote update
git checkout `SHA`
git tag -s -m "v100.0.0" v100.0.0
git push <upstream> --tags
Create a GitHub release using the tag you've just created.
Release title: <tag>
The release notes will be the notes you drafted in the previous step.
Ensure the following fields are up to date:
- Security contact email
- Primary Category
- Another Category — optional
Click Publish release
.
-
Open a pull request in the starter workflows repo to update the action's digest to
GH2
. -
Update our documentation's example workflow to use
GH2
. -
Verify on GitHub Marketplace that the workflow example contains
GH2
.NOTE: GitHub Marketplace uses the default branch as reference documentation