tk5-c90-projects/.gitea/workflows/mvs_delete.yaml
2026-02-06 15:03:49 +00:00

84 lines
2.7 KiB
YAML

name: MVS Delete Members
on:
push:
branches: [ master ]
paths:
- 'src/**'
- 'jcl/**'
workflow_dispatch: # Allow manual trigger for cleanup
jobs:
delete-members:
runs-on: ubuntu-gitea
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for git diff
- name: Prepare environment
id: setup
run: |
echo "=== Debug: Starting setup ==="
apt-get update && apt install -y netcat-traditional python3-requests
nc -h
echo "=== Debug: Setup complete ==="
- name: Find deleted source files
id: deleted
run: |
echo "=== Debug: Starting deletion detection ==="
echo "Current dir: $(pwd)"
# Check if we have a parent commit
if git rev-parse --verify HEAD~1 >/dev/null 2>&1; then
echo "Parent commit exists; checking for deletions."
DELETED_FILES=$(git diff --name-only --diff-filter=D HEAD~1 2>/dev/null | grep -E '\.(c|bas)$')
echo "Deleted files from last commit: '${DELETED_FILES}'"
else
echo "No parent commit; no deletions to process."
DELETED_FILES=""
fi
if [ -z "$DELETED_FILES" ]; then
echo "No deleted C/BAS files found; skipping workflow."
echo "has_deletions=false" >> $GITHUB_OUTPUT
exit 0
fi
# Process deleted files - convert to space-separated list of members
DELETED_MEMBERS=""
for DFILE in $DELETED_FILES; do
DEXT="${DFILE##*.}"
DBASE=$(basename "$DFILE" ".$DEXT")
DELETED_MEMBERS="$DELETED_MEMBERS $DBASE"
done
echo "Deleted members: $DELETED_MEMBERS"
echo "deleted_members=$DELETED_MEMBERS" >> $GITHUB_OUTPUT
echo "has_deletions=true" >> $GITHUB_OUTPUT
echo "=== Debug: Deletion detection complete ==="
- name: Delete removed members from PDS
if: ${{ steps.deleted.outputs.has_deletions == 'true' }}
run: |
echo "=== Starting deletion of removed members ==="
echo "Deleted members: ${{ steps.deleted.outputs.deleted_members }}"
for MEMBER in ${{ steps.deleted.outputs.deleted_members }}; do
echo "Deleting member: $MEMBER"
python3 delete_mvs_member.py "@05054.SRCLIB.C($MEMBER)"
done
echo "=== Deletion complete ==="
env:
MVS_BATCH_PASSWORD: ${{ vars.MVS_BATCH_PASSWORD }}
MVS_HOST: "oldcomputernerd.com"
- name: Report Status
if: ${{ steps.deleted.outputs.has_deletions == 'true' }}
run: |
echo "Deletion complete! Members removed from mainframe PDS."