mirror of
https://github.com/fluxcd/flux2.git
synced 2026-02-08 16:57:29 +00:00
This commit changes the way the build of manifests is triggered by making smarter use of the capabilities of Make. The result should be that the manifests are only regenerated if: 1. There is no `cmd/flux/manifests/` directory. 2. There have been made changes to the YAML files in the `manifests/` directory that are newer than the files in `cmd/flux/manifests/`. Signed-off-by: Hidde Beydals <hello@hidde.co>
84 lines
2.8 KiB
YAML
84 lines
2.8 KiB
YAML
name: bootstrap
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
github:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Restore Go cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go1.16-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go1.16-
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.16.x
|
|
- name: Setup Kubernetes
|
|
uses: engineerd/setup-kind@v0.5.0
|
|
- name: Setup Kustomize
|
|
uses: fluxcd/pkg//actions/kustomize@main
|
|
- name: Build
|
|
run: |
|
|
make cmd/flux/manifests
|
|
go build -o /tmp/flux ./cmd/flux
|
|
- name: Set outputs
|
|
id: vars
|
|
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
|
- name: bootstrap init
|
|
run: |
|
|
/tmp/flux bootstrap github --manifests ./manifests/install/ \
|
|
--owner=fluxcd-testing \
|
|
--repository=flux-test-${{ steps.vars.outputs.sha_short }} \
|
|
--branch=main \
|
|
--path=test-cluster
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
|
|
- name: bootstrap no-op
|
|
run: |
|
|
/tmp/flux bootstrap github --manifests ./manifests/install/ \
|
|
--owner=fluxcd-testing \
|
|
--repository=flux-test-${{ steps.vars.outputs.sha_short }} \
|
|
--branch=main \
|
|
--path=test-cluster
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
|
|
- name: uninstall
|
|
run: |
|
|
/tmp/flux uninstall -s --keep-namespace
|
|
kubectl delete ns flux-system --timeout=10m --wait=true
|
|
- name: bootstrap reinstall
|
|
run: |
|
|
/tmp/flux bootstrap github --manifests ./manifests/install/ \
|
|
--owner=fluxcd-testing \
|
|
--repository=flux-test-${{ steps.vars.outputs.sha_short }} \
|
|
--branch=main \
|
|
--path=test-cluster
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
|
|
- name: delete repository
|
|
run: |
|
|
/tmp/flux bootstrap github --manifests ./manifests/install/ \
|
|
--owner=fluxcd-testing \
|
|
--repository=flux-test-${{ steps.vars.outputs.sha_short }} \
|
|
--branch=main \
|
|
--path=test-cluster \
|
|
--delete
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
|
|
- name: Debug failure
|
|
if: failure()
|
|
run: |
|
|
kubectl -n flux-system get all
|
|
kubectl -n flux-system logs deploy/source-controller
|
|
kubectl -n flux-system logs deploy/kustomize-controller
|