blob: 5f532a4d359484c4b7a14444671af38247a04f8f [file] [log] [blame]
# Simplified Commit Queue
#
# (Force) push to "queue-main-$USER" a potential change, and
# this job will push it main if it passes pre-commit and tests,
# which will run in parallel. The push may fail if the commit
# cannot be pushed cleanly because it needs to be rebased, which
# will happen especially if another developer pushes a change at
# roughly the same time.
name: Main Branch Commit Queue
on:
push:
branches:
- "queue-main-*"
permissions: read-all
jobs:
formatting:
uses: ./.github/workflows/formatting.yml
permissions:
contents: write
with:
auto_fix: true
go-test:
needs: [formatting]
uses: ./.github/workflows/go_test.yml
permissions: read-all
ui-test:
needs: [formatting]
uses: ./.github/workflows/webui_test.yml
permissions: read-all
push-to-main:
runs-on: ubuntu-latest
needs: [go-test, ui-test, formatting]
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Push to main
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "actions@github.com"
# Use the formatted commit SHA if available, otherwise use HEAD
COMMIT_TO_PUSH="HEAD"
if [[ "${{ needs.formatting.outputs.commit_sha }}" != "" ]]; then
echo "Using formatted commit: ${{ needs.formatting.outputs.commit_sha }}"
COMMIT_TO_PUSH="${{ needs.formatting.outputs.commit_sha }}"
fi
git push https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/boldsoftware/sketch.git "${COMMIT_TO_PUSH}":main
env:
GITHUB_TOKEN: ${{ github.token }}