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 with: version: v0.11.1 image: kindest/node:v1.21.1@sha256:69860bda5563ac81e3c0057d654b5253219618a22ec3a346306239bba8cfa1a6 - name: Setup Kustomize uses: fluxcd/pkg//actions/kustomize@main - name: Build run: | make cmd/flux/.manifests.done go build -o /tmp/flux ./cmd/flux - name: Set outputs id: vars run: | REPOSITORY_NAME=${{ github.event.repository.name }} BRANCH_NAME=${GITHUB_REF##*/} COMMIT_SHA=$(git rev-parse HEAD) PSEUDO_RAND_SUFFIX=$(echo "${BRANCH_NAME}-${COMMIT_SHA}" | shasum | awk '{print $1}') TEST_REPO_NAME="${REPOSITORY_NAME}-${PSEUDO_RAND_SUFFIX}" echo "::set-output name=test_repo_name::$TEST_REPO_NAME" - name: bootstrap init run: | /tmp/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --repository=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ --path=test-cluster \ --team=team-z env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} - name: bootstrap no-op run: | /tmp/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --repository=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ --path=test-cluster \ --team=team-z env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} - name: bootstrap customize run: | make setup-bootstrap-patch /tmp/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --repository=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ --path=test-cluster \ --team=team-z if [ $(kubectl get deployments.apps source-controller -o jsonpath='{.spec.template.spec.securityContext.runAsUser}') != "10000" ]; then echo "Bootstrap not customized as controller is not running as user 10000" && exit 1 fi env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} GITHUB_REPO_NAME: ${{ steps.vars.outputs.test_repo_name }} GITHUB_ORG_NAME: fluxcd-testing - name: libgit2 run: | /tmp/flux create source git test-libgit2 \ --url=ssh://git@github.com/fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} \ --git-implementation=libgit2 \ --secret-ref=flux-system \ --branch=main - 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=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ --path=test-cluster \ --team=team-z env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} - name: delete repository run: | curl \ -X DELETE \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: token ${GITHUB_TOKEN}" \ --fail --silent \ https://api.github.com/repos/fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} 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