A GitHub Action for Squawk.
Lint Postgres migrations and report violations as a comment in a GitHub Pull Request (example PR).
For more information on Squawk, see the Squawk GitHub repository or website.
basic usage
Lint every .sql file in migrations/ on every pull request.
# .github/workflows/lint-migrations.yml name: Lint Migrations on: pull_request jobs: lint_migrations: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: sbdchd/squawk-action@v2 with: pattern: "migrations/*.sql" version: "latest"
advanced usage
Only lint modified .sql files in the migrations/.
# .github/workflows/lint-migrations.yml name: Lint Migrations on: pull_request jobs: lint_migrations: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Find modified migrations run: | modified_migrations=$(git diff --diff-filter=d --name-only origin/$GITHUB_BASE_REF...origin/$GITHUB_HEAD_REF 'migrations/*.sql' | tr '\n' ' ') echo "$modified_migrations" echo "file_names=$modified_migrations" >> $GITHUB_OUTPUT id: modified-migrations - uses: sbdchd/squawk-action@v2 with: files: ${{ steps.modified-migrations.outputs.file_names }}
Tip
See action.yml for more action inputs.
example report
development
releasing a new version
- Release a new version (e.g. v5.2.1)
- Update major version tag to point to commit.
git tag v5 git push --tags
