Skip to content

Migrations reminder

Migrations reminder #3

# GitHub action that checks if the PR contains changes related to migrations an add reminder comment to the PR.
# Based on https://github.com/marketplace/actions/changed-files
name: Migrations Reminder
on:
pull_request
jobs:
check_changed_files:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Group files that have changed
id: changed-files-yaml
uses: tj-actions/changed-files@v41
with:
files_yaml: |
linters:
- '.github/workflows/isolated_migrations.yml'
- 'src/api/.rubocop*.yml'
migrations:
- src/api/db/migrate/**
- src/api/db/schema.rb
- src/api/db/data/**
- src/api/db/data_schema.rb
not_migrations:
- '!src/api/db/migrate/**'
- '!src/api/db/schema.rb'
- '!src/api/db/data/**'
- '!src/api/db/data_schema.rb'
- '!src/api/db/attribute_descriptions.rb'
- '!src/api/db/seeds.rb'
- '!.github/workflows/isolated_migrations.yml'
- '!src/api/.rubocop*.yml'
schema_migrations:
- src/api/db/migrate/**
data_migrations:
- src/api/db/data/**
schema:
- src/api/db/schema.rb
data_schema:
- src/api/db/data_schema.rb
- name: List the files related to migrations that this PR changes
if: steps.changed-files-yaml.outputs.migrations_any_changed == 'true'
run: |
for file in ${{ steps.changed-files-yaml.outputs.migrations_all_changed_files }}; do
echo "- $file"
done
# - name: Check if the Pull Request contains code changes together with migrations
# if: (steps.changed-files-yaml.outputs.migrations_any_changed == 'true') && (steps.changed-files-yaml.outputs.not_migrations_all_changed_files_count > 0)
# run: |
# echo "There are code changes together with migrations. Please split them into two Pull Requests"
# exit 1
- name: Add Comment to PR
uses: thollander/actions-comment-pull-request@v2
if: (steps.changed-files-yaml.outputs.migrations_any_changed == 'true') && (steps.changed-files-yaml.outputs.not_migrations_all_changed_files_count > 0)
with:
message: |
"This PR contains migrations and other code changes. Please ship the conde changes on another PR."
pr_number: ${{ github.event.number }}