85 lines
2.8 KiB
YAML
85 lines
2.8 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 (deleted only)
|
|
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."
|
|
# Use --diff-filter=D to only get Deleted files (exclude Added/Modified)
|
|
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 scripts/del_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."
|