Instantly display the 'You reported the X' message #755
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub action that checks: | |
# - that the migrations and the related code changes are not in the same pull request | |
# - that the schema.rb and data_schema.rb files are included in the pull request that introduces the corresponding migration | |
# Based on https://github.com/marketplace/actions/changed-files | |
name: Isolated Migrations | |
on: | |
pull_request | |
jobs: | |
check_changed_files: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Group files that have changed | |
id: changed-files-yaml | |
uses: tj-actions/changed-files@v40 | |
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 linters that this PR changes | |
if: steps.changed-files-yaml.outputs.linters_any_changed == 'true' | |
run: | | |
for file in ${{ steps.changed-files-yaml.outputs.linters_all_changed_files }}; do | |
echo "- $file" | |
done | |
- 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: List the files not related to migrations that this PR changes | |
if: steps.changed-files-yaml.outputs.not_migrations_any_changed == 'true' | |
run: | | |
for file in ${{ steps.changed-files-yaml.outputs.not_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: Missing schema changes | |
if: (steps.changed-files-yaml.outputs.schema_migrations_any_changed == 'true') && (steps.changed-files-yaml.outputs.linters_any_changed == 'false') && (steps.changed-files-yaml.outputs.schema_any_changed == 'false') | |
run: | | |
echo "You introduced some schema migration, please introduce the schema.rb changes as well" | |
exit 1 | |
- name: Missing data schema changes | |
if: (steps.changed-files-yaml.outputs.data_schema_migrations_any_changed == 'true') && (steps.changed-files-yaml.outputs.linters_any_changed == 'false') && (steps.changed-files-yaml.outputs.data_schema_any_changed == 'false') | |
run: | | |
echo "You introduced some data migrations, please introduce the data_schema.rb changes as well" | |
exit 1 |