From a4c3a243e9aa1d5daebee414bed57e267cef7fa3 Mon Sep 17 00:00:00 2001 From: Jeremy McCormick Date: Wed, 13 Nov 2024 09:00:28 +0100 Subject: [PATCH] Add initial version of migration trigger workflow This workflow can be used to trigger migration workflows in other repositories. Currently, it has a single job that triggers ConsDB migrations in the lsst-dm/consdb repo. --- .github/workflows/migrate.yaml | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/migrate.yaml diff --git a/.github/workflows/migrate.yaml b/.github/workflows/migrate.yaml new file mode 100644 index 00000000..c064b0e4 --- /dev/null +++ b/.github/workflows/migrate.yaml @@ -0,0 +1,58 @@ +name: Trigger Database Migrations + +on: + pull_request: + types: [closed] + +jobs: + migrate-cdb: + runs-on: ubuntu-latest + if: github.event.pull_request.merged == true # Only trigger on merged PRs + + steps: + + - name: Checkout code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: ${{ github.head_ref }} + + - name: Fetch main branch + run: git fetch origin main + + - name: Set relative path to schema directory + run: | + echo "SCHEMA_DIR=python/lsst/sdm_schemas/schemas" >> $GITHUB_ENV + + - name: Check for changed cdb schemas # TODO: Use 'felis diff -c alembic' when available + run: | + CHANGED_FILES=$(git diff --name-only origin/main..HEAD -- ${{ env.SCHEMA_DIR }}) + if [ -z "$CHANGED_FILES" ]; then + echo "No schema files changed" + exit 0 + fi + CHANGED_FILES=$(echo $CHANGED_FILES | xargs basename | grep -E '^cdb_.*\.yaml$') + if [ -z "$CHANGED_FILES" ]; then + echo "No cdb schema files changed" + exit 0 + fi + echo "Changed cdb schema files: $CHANGED_FILES" + + - name: Print branch name and commit SHA + run: | + echo "Branch name: ${{ github.head_ref }}" + echo "Commit SHA: ${{ github.event.pull_request.merge_commit_sha }}" + + - name: Trigger migration workflow in consdb repository + run: | + curl -X POST \ + -H "Authorization: token ${{ secrets.REPO_DISPATCH_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/JeremyMcCormick/consdb-jeremym/dispatches \ + -d '{ + "event_type": "migration", + "client_payload": { + "branch_name": "${{ github.head_ref }}", + "commit_sha": "${{ github.event.pull_request.merge_commit_sha }}" + } + }'