mirror of https://github.com/fluxcd/flux2.git
Better example for image automation auto PR
The linked github actions workflow does not actually do what you need, I found a better one and demonstrated how to use it in this example. The "GitHub Actions Auto PR" use case could be expanded upon, but I think maybe this short version already says everything it needs to say! Signed-off-by: Kingdon Barrett <kingdon@weave.works>pull/1354/head
parent
6a37649ee6
commit
a5b8840912
@ -0,0 +1,54 @@
|
||||
# GitHub Actions Auto PR
|
||||
|
||||
In the [Image Update Guide] we saw we can [Push updates to a different branch] by using `.spec.git.push.branch` to push image updates to a different branch than the one used for checkout.
|
||||
|
||||
In this example, we configure an `ImageUpdateAutomation` resource to push to a `staging` branch, which we could set up separately as a preview environment to deploy automatic updates in a staging cluster or namespace.
|
||||
|
||||
```yaml
|
||||
kind: ImageUpdateAutomation
|
||||
metadata:
|
||||
name: flux-system
|
||||
spec:
|
||||
git:
|
||||
checkout:
|
||||
ref:
|
||||
branch: main
|
||||
push:
|
||||
branch: staging
|
||||
```
|
||||
|
||||
In your manifest repository, add a GitHub Action workflow as below. This workflow watches for commits on the `staging` branch and opens a pull request with any labels, title, or body that you configure.
|
||||
|
||||
```yaml
|
||||
# ./.github/workflows/staging-auto-pr.yaml
|
||||
name: Staging Auto-PR
|
||||
on:
|
||||
push:
|
||||
branches: ['staging']
|
||||
|
||||
jobs:
|
||||
pull-request:
|
||||
name: Open PR to main
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
name: checkout
|
||||
|
||||
- uses: repo-sync/pull-request@v2
|
||||
name: pull-request
|
||||
with:
|
||||
destination_branch: "main"
|
||||
pr_title: "Pulling ${{ github.ref }} into main"
|
||||
pr_body: ":crown: *An automated PR*"
|
||||
pr_reviewer: "kingdonb"
|
||||
pr_draft: true
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
You can use the [github-pull-request-action] workflow to automatically open a pull request against a destination branch. In this case, when a pull request is merged into the main changes are deployed in production.
|
||||
|
||||
This way you can manually approve automatic image updates before they are applied on your production clusters.
|
||||
|
||||
[Image Update Guide]: /guides/image-update/
|
||||
[Push updates to a different branch]: /guides/image-update/#push-updates-to-a-different-branch
|
||||
[github-pull-request-action]: https://github.com/marketplace/actions/github-pull-request-action
|
Loading…
Reference in New Issue