Remove relationships to inactive records #28
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
name: Remove relationships to inactive records | |
on: | |
workflow_dispatch: | |
inputs: | |
schema-version: | |
required: true | |
description: Schema version | |
type: choice | |
options: | |
- v1 | |
- v2 | |
directory-name: | |
type: string | |
description: Name of parent directory containing new/updated records with inactive statuses. Needed only if different from branch name. | |
jobs: | |
remove-relationships: | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.ref }} | |
- name: Set up Python environment | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.8" | |
- name: Get directory name | |
if: "${{ github.event.inputs.directory-name != '' }}" | |
run: echo "WORKING_DIR=${{ github.event.inputs.directory-name }}" >> $GITHUB_ENV | |
- name: Get branch name | |
if: "${{ github.event.inputs.directory-name == '' }}" | |
run: echo "WORKING_DIR=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV | |
- name: Remove relationships | |
id: remrelshp | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
python -m pip install --upgrade pip | |
pip install requests==2.23.0 | |
curl https://raw.githubusercontent.com/ror-community/curation_ops/v2-crosswalk/remove_relationships/remove_relationships.py -o remove_relationships.py | |
if [[ ${{ github.event.inputs.schema-version }} == 'v1' ]]; then | |
python remove_relationships.py -v 1 | |
fi | |
if [[ ${{ github.event.inputs.schema-version }} == 'v2' ]]; then | |
python remove_relationships.py -v 2 | |
fi | |
- name: commit error file | |
if: ${{ steps.remrelshp.outcome != 'success'}} | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
echo "ERRORS found for some records:" | |
cat relationship_errors.log | |
- name: commit changed files | |
if: ${{ steps.remrelshp.outcome == 'success'}} | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
file_pattern: ${{ env.WORKING_DIR }}/**.json | |
commit_message: Apply relationship changes to files | |
- name: Set env variable for notification | |
if: always() | |
run: | | |
if [[ ${{ steps.remrelshp.outcome }} == 'success' ]]; then | |
echo "relationship_status=SUCCESS" >> $GITHUB_ENV | |
else | |
echo "relationship_status=FAILED" >> $GITHUB_ENV | |
fi | |
- name: Notify Slack | |
if: always() | |
uses: edge/simple-slack-notify@master | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.CURATOR_SLACK_WEBHOOK_URL }} | |
VALIDATION_STATUS: ${{ env.relationship_status }} | |
with: | |
channel: '#ror-curation-releases' | |
color: 'good' | |
text: 'DEV relationship removal status: ${env.VALIDATION_STATUS}. Using version ${{ github.event.inputs.schema-version }}. Branch: ${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/tree/${env.GITHUB_REF_NAME}. Directory: ${{ env.WORKING_DIR }}. Please check: ${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID} for more details' |