-
Notifications
You must be signed in to change notification settings - Fork 141
Description
What problem are you facing?
The function template repos (e.g. https://github.com/crossplane/function-template-go and https://github.com/crossplane/function-template-python) set up a GitHub Action named CI. Using the Action is optional, but it can help with releasing a new function. I think it would be useful to document a release branch pattern that function authors could choose to use.
How could this Function help solve your problem?
For the functions I maintain, I first setup a https://marketplace.upbound.io repository (docs at https://docs.upbound.io):
- Create an https://marketplace.upbound.io org and repository to match the function's GitHub org and repository. For example the org might be
crossplane-contrib
and the repository might befunction-auto-ready
. - Create a team with permission to write to the repository.
- Create a robot and add it to the team.
- Create an API token for the robot
- Save the API token access ID as a GitHub Actions repository token named
XPKG_ACCESS_ID
. - Save the API token as a GitHub Actions repository token named
XPKG_TOKEN
Once these tokens are created the CI job will push a package for every PR merged to master, using a tag like v0.0.0-20231101115142-1091066df799
as described in crossplane/function-template-go#38.
Then, to cut a new minor version release the process is pretty simple. I:
- Create a new branch named (e.g.)
release-0.2
using the GitHub UI. - Create a new release named (e.g.)
v0.2.0
using the GitHub UI, using the above branch. This creates a new tag. - Manually trigger the CI workflow against the new tag (e.g.
v0.2.0
) and tell it to tag the package with the same tag.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status