Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 55 additions & 20 deletions .github/workflows/on_gpml_change.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@ name: When GPML changed, do everything

on:
workflow_dispatch:
inputs:
added-modified:
description: "Added and modified pathways (space-separated WPIDs)"
copied:
description: "Copied pathways (space-separated WPIDs)"
deleted:
description: "Deleted pathways (space-separated WPIDs)"
renamed:
description: "Renamed pathways (space-separated WPIDs)"
push:
branches:
- main
Expand Down Expand Up @@ -34,33 +43,59 @@ jobs:
# Set outputs using the command.
run: |
echo "GPML files were changed in pull request ${{ github.event.before }} -> ${{ github.event.after }}"

#echo "::set-output name=added-modified::$(git diff --name-only --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)"
echo "added-modified=$(git diff --name-only --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)" >> $GITHUB_OUTPUT
if git diff --name-only --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$; then

ANY_INPUT="${{ inputs.added-modified }}${{ inputs.copied }}${{ inputs.deleted }}${{ inputs.renamed }}"

if [ -n "$ANY_INPUT" ]; then
ADDED_MODIFIED=$(sed -e 's/WP[0-9]\+/pathways\/\0\/\0.gpml/g' <<< "${{ inputs.added-modified }}")
else
ADDED_MODIFIED=$(git diff --name-only --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)
fi

#echo "::set-output name=added-modified::$ADDED_MODIFIED"
echo "added-modified=$ADDED_MODIFIED" >> $GITHUB_OUTPUT
if [ -n "$ADDED_MODIFIED" ]; then
echo 'added or modified:'
git diff --name-only --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$
tr ' ' '\n' <<< "$ADDED_MODIFIED"
fi

#echo "::set-output name=copied::$(git diff --name-only --diff-filter=C ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)"
echo "copied=$(git diff --name-only --diff-filter=C ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)" >> $GITHUB_OUTPUT
if git diff --name-only --diff-filter=C ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$; then

if [ -n "$ANY_INPUT" ]; then
COPIED=$(sed -e 's/WP[0-9]\+/pathways\/\0\/\0.gpml/g' <<< "${{ inputs.copied }}")
else
COPIED=$(git diff --name-only --diff-filter=C ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)
fi

#echo "::set-output name=copied::$COPIED"
echo "copied=$COPIED" >> $GITHUB_OUTPUT
if [ -n "$COPIED" ]; then
echo 'copied:'
git diff --name-only --diff-filter=C ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$
tr ' ' '\n' <<< "$COPIED"
fi

#echo "::set-output name=deleted::$(git diff --name-only --diff-filter=D ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)"
echo "deleted=$(git diff --name-only --diff-filter=D ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)" >> $GITHUB_OUTPUT
if git diff --name-only --diff-filter=D ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$; then

if [ -n "$ANY_INPUT" ]; then
DELETED=$(sed -e 's/WP[0-9]\+/pathways\/\0\/\0.gpml/g' <<< "${{ inputs.deleted }}")
else
DELETED=$(git diff --name-only --diff-filter=D ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)
fi

#echo "::set-output name=deleted::$DELETED"
echo "deleted=$DELETED" >> $GITHUB_OUTPUT
if [ -n "$DELETED" ]; then
echo 'deleted:'
git diff --name-only --diff-filter=D ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$
tr ' ' '\n' <<< "$DELETED"
fi

#echo "::set-output name=renamed::$(git diff --name-only --diff-filter=R ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)"
echo "renamed=$(git diff --name-only --diff-filter=R ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)" >> $GITHUB_OUTPUT
if git diff --name-only --diff-filter=R ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$; then

if [ -n "$ANY_INPUT" ]; then
RENAMED=$(sed -e 's/WP[0-9]\+/pathways\/\0\/\0.gpml/g' <<< "${{ inputs.renamed }}")
else
RENAMED=$(git diff --name-only --diff-filter=R ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$ | xargs)
fi

#echo "::set-output name=renamed::$RENAMED"
echo "renamed=$RENAMED" >> $GITHUB_OUTPUT
if [ -n "$RENAMED" ]; then
echo 'renamed:'
git diff --name-only --diff-filter=R ${{ github.event.before }} ${{ github.event.after }} | grep .gpml$
tr ' ' '\n' <<< "$RENAMED"
fi

author-list:
Expand Down