name: runner-determinator on: workflow_dispatch: pull_request: branches: [main] paths: - .github/workflows/_runner-determinator.yaml - .github/workflows/_runner_determinator_script_sync.yaml - .github/workflows/scripts/runner_determinator.py jobs: python-script-sync-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: sparse-checkout: | .github - name: Extract the script from runner_determinator run: | # Runner determinator files RUNNER_DETERMINATOR_WORKFLOW_FILE=.github/workflows/_runner-determinator.yml RUNNER_DETERMINATOR_PYTHON_SCRIPT_FILE=.github/scripts/runner_determinator.py # Parse the job file, extract the script and run it, up to the final EOF, # to generate the python file in the local folder yq '.jobs.runner-determinator.steps[] | select(.id == "hardcode-script") | .run' \ "${RUNNER_DETERMINATOR_WORKFLOW_FILE}" | sed '/^EOF$/q' | bash set +e DIFF="$(diff "$(basename ${RUNNER_DETERMINATOR_PYTHON_SCRIPT_FILE})" ${RUNNER_DETERMINATOR_PYTHON_SCRIPT_FILE})" IS_DIFF=$? set -e if [ $IS_DIFF -eq 0 ]; then echo "Scripts are in sync! ^_^"; else echo -e "Scripts are *NOT* in sync:\n ${DIFF}"; exit 1 fi