name: Push on: push: branches: [main] jobs: release: runs-on: ubuntu-latest steps: - uses: https://git.keligrubb.com/actions/checkout@v6 with: token: ${{ secrets.KESTRELOS_REPO_TOKEN }} - name: Get PR description for changelog env: GITEA_REPO_TOKEN: ${{ secrets.KESTRELOS_REPO_TOKEN }} run: | sudo rm -f /etc/apt/sources.list.d/microsoft*.list /etc/apt/sources.list.d/azure*.list 2>/dev/null || true sudo apt-get update -qq && sudo apt-get install -y -qq jq RESP=$(curl -sf -H "Authorization: token $GITEA_REPO_TOKEN" \ "${{ github.server_url }}/api/v1/repos/${{ github.repository }}/commits/${{ github.sha }}/pull") || true if [ -n "$RESP" ]; then echo "$RESP" | jq -r '.body // empty' > .ci_pr_body 2>/dev/null || true fi - name: Release (bump, tag, push, create release) env: CI_REPO_OWNER: ${{ github.actor }} CI_REPO_NAME: ${{ github.event.repository.name }} CI_FORGE_URL: ${{ github.server_url }} CI_COMMIT_MESSAGE: ${{ github.event.head_commit.message }} GITEA_REPO_TOKEN: ${{ secrets.KESTRELOS_REPO_TOKEN }} run: | sudo rm -f /etc/apt/sources.list.d/microsoft*.list /etc/apt/sources.list.d/azure*.list 2>/dev/null || true sudo apt-get update -qq && sudo apt-get install -y -qq git wget ./scripts/release.sh publish: needs: release runs-on: ubuntu-latest steps: - uses: https://git.keligrubb.com/actions/checkout@v6 with: ref: main token: ${{ secrets.KESTRELOS_REPO_TOKEN }} - name: Log in to container registry uses: https://git.keligrubb.com/actions/docker-login-action@v4 with: registry: git.keligrubb.com username: ${{ github.actor }} password: ${{ secrets.KESTRELOS_REPO_TOKEN }} - name: Set up Docker Buildx uses: https://git.keligrubb.com/actions/docker-setup-buildx-action@v4 - name: Build Docker image uses: https://git.keligrubb.com/actions/docker-build-push-action@v7 with: context: . load: true tags: kestrelos:built - name: Push Docker image (version + latest) run: | VERSION=$(awk '/"version"/ { match($0, /[0-9]+\.[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH); exit }' package.json) case "$VERSION" in [0-9]*.[0-9]*.[0-9]*) ;; *) echo "error: package.json version must be x.y.z (got: $VERSION)"; exit 1 ;; esac REGISTRY="git.keligrubb.com" IMAGE="$REGISTRY/${{ github.repository }}" for tag in "$VERSION" latest; do docker tag kestrelos:built "$IMAGE:$tag" docker push "$IMAGE:$tag" done - name: Set up Helm uses: https://git.keligrubb.com/actions/setup-helm@v5 - name: Package and push Helm chart env: GITEA_REPO_TOKEN: ${{ secrets.KESTRELOS_REPO_TOKEN }} run: | helm package helm/kestrelos for f in kestrelos-*.tgz; do curl -sf -u "${{ github.actor }}:$GITEA_REPO_TOKEN" -X POST --upload-file "$f" \ "${{ github.server_url }}/api/packages/${{ github.actor }}/helm/api/charts" done