name: Build Container and update Flux on: push: paths-ignore: - k/** env: DEPLOY_MANIFEST: ${{ vars.DEPLOY_MANIFEST }} FLUX_MANIFEST: ${{ vars.FLUX_MANIFEST || 'flux.yaml' }} jobs: Explore-Gitea-Actions: runs-on: metal-docker steps: - name: Check out repository code uses: actions/checkout@v3 - run: | echo "deploy: ${DEPLOY_MANIFEST}" echo "flux: ${FLUX_MANIFEST}" ls -la docker build --progress plain --iidfile iid.txt . stringprefix() { [ ${#1} -le $2 ] && echo $1 && return 0 || stringprefix "${1%?}" $2 ; } STAG="$GITHUB_REF_NAME-$(date +%Y-%m-%d-%H.%M.%S)" SHORTSHA="$(stringprefix "$GITHUB_SHA" 8)" for TAG in "$SHORTSHA" "$GITHUB_REF_NAME" "$STAG";do docker tag "`cat iid.txt`" "$DOCKER_REGISTRY/$GITHUB_REPOSITORY:$TAG" docker push "$DOCKER_REGISTRY/$GITHUB_REPOSITORY:$TAG" done BRANCH="$GITHUB_REF_NAME" KBRANCH="k-$GITHUB_REF_NAME" git config user.name "$GITHUB_REPOSITORY (act)" git config user.email "gitea-actions@strudelline.net" # ensure the branch exists so we can ensure it's deleted. no errors at all. git checkout -B "$KBRANCH" git checkout "$BRANCH" git branch -D "$KBRANCH" git checkout -b "$KBRANCH" # now fix up the images in k/runner.yaml sed -i -e "s@image: $DOCKER_REGISTRY/$GITHUB_REPOSITORY:.*@image: $DOCKER_REGISTRY/$GITHUB_REPOSITORY:$STAG@" k/runner.yaml sed -i -e "s@branch: .*@$KBRANCH@" k/flux.yaml git add k git commit -m "upgrade runner sts to $STAG" git push -f origin k-$GITHUB_REF_NAME # now let's fix the origin branch's flux.yaml if it's needed. # this will only happen once so it's not such an awful UX. git checkout "$BRANCH" sed -i -e "s@branch: .*@$KBRANCH@" k/flux.yaml if git diff | grep -q .;then echo fixing branch in flux.yaml of the origin branch git add k/flux.yaml git commit -m "fix flux.yaml in $BRANCH" git push fi