Introducing Run Examples check in PRs #22
Workflow file for this run
This file contains hidden or 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: Run examples on modified PDL files | |
| on: [pull_request] | |
| jobs: | |
| tests: | |
| name: Execution tests | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| # strategy: | |
| # fail-fast: false | |
| # max-parallel: 1 | |
| # matrix: | |
| # python-version: ['3.11', '3.12', '3.13'] | |
| steps: | |
| - name: Push the new run-examples yaml config | |
| shell: bash | |
| run: | | |
| echo "This is a test: $(date)" > test-file.txt | |
| git config --local user.name github-actions[bot] | |
| git config --local user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| git remote set-url fork-remote https://${{ secrets.PDL_PAT }}@github.com/${{ github.event.pull_request.head.repo.full_name }}.git | |
| git status | |
| git pull fork-remote ${{ github.head_ref }} | |
| git add test-file.txt | |
| git diff --cached --quiet || git commit -s -m "github-actions[bot]: Simple test for PAT" | |
| git push fork-remote ${{ github.head_ref }} | |
| # # Detect modified PDL files, includes Add, Modified, but not Deleted | |
| # - uses: actions/checkout@v4 | |
| # with: | |
| # fetch-depth: 0 | |
| # - name: Detect all PDL files that were changed or added | |
| # id: changed-pdl-files | |
| # uses: tj-actions/changed-files@6cb76d07bee4c9772c6882c06c37837bf82a04d3 # v46 | |
| # with: | |
| # files: | | |
| # **.pdl | |
| # json: "true" | |
| # escape_json: "false" | |
| # - name: List PDL files that were modified or added and append to test_examples_run | |
| # run: | | |
| # echo ${{ steps.changed-pdl-files.outputs.all_changed_files }} | |
| # if [ ${{ steps.changed-pdl-files.outputs.all_changed_files_count }} -gt 0 ]; then | |
| # echo "early-stop=false" >> $GITHUB_ENV | |
| # else | |
| # echo "No file need to be checked, skipping all subsequent tests." | |
| # echo "early-stop=true" >> $GITHUB_ENV | |
| # fi | |
| # # Run tests if there are modified PDL files | |
| # - name: Check if update results automatically by GitHub Actions Bot | |
| # if: ${{ env.early-stop == 'false' }} | |
| # id: parse-run-examples-config | |
| # shell: bash | |
| # run: | | |
| # value=$(yq '.update_results' tests/test_examples_run.yaml | tr '[:upper:]' '[:lower:]') | |
| # echo "value=$value" | |
| # echo "update_results=$value" >> $GITHUB_ENV | |
| # # Set up Ollama | |
| # # - name: Cache Ollama model files | |
| # # if: ${{ env.early-stop == 'false' }} | |
| # # uses: actions/cache@v4 | |
| # # with: | |
| # # path: /usr/share/ollama/.ollama/models | |
| # # key: ${{ runner.os }}-build-ollama-cache | |
| # # restore-keys: | | |
| # # ${{ runner.os }}-build- | |
| # # ${{ runner.os }} | |
| # - uses: ./.github/actions/ollama | |
| # if: ${{ env.early-stop == 'false' }} | |
| # # Set up Run Examples environment | |
| # - name: Set up Python ${{ matrix.python-version }} | |
| # uses: actions/setup-python@v5 | |
| # if: ${{ env.early-stop == 'false' }} | |
| # with: | |
| # python-version: ${{ matrix.python-version }} | |
| # - name: Cache pip | |
| # uses: actions/cache@v4 | |
| # if: ${{ env.early-stop == 'false' }} | |
| # with: | |
| # # This path is specific to Ubuntu | |
| # path: ${{ env.pythonLocation }} | |
| # # Look to see if there is a cache hit for the setup file | |
| # key: ${{ runner.os }}-pip-new3-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }} | |
| # restore-keys: | | |
| # ${{ runner.os }}-pip-new3 | |
| # ${{ runner.os }}-new3 | |
| # - name: Install dependencies | |
| # if: ${{ env.early-stop == 'false' }} | |
| # shell: bash | |
| # run: pip install --upgrade --upgrade-strategy eager .[all] | |
| # - name: Pip list packages | |
| # if: ${{ env.early-stop == 'false' }} | |
| # shell: bash | |
| # run: pip list | |
| # - name: Patch tests/test_examples_run.yaml check with modified files | |
| # if: ${{ env.early-stop == 'false' }} | |
| # shell: bash | |
| # run: | | |
| # yq -i '.check = (${{ steps.changed-pdl-files.outputs.all_changed_files }})' tests/test_examples_run.yaml | |
| # - name: View Run Examples config | |
| # if: ${{ env.early-stop == 'false' }} | |
| # shell: bash | |
| # run: cat tests/test_examples_run.yaml | |
| # - name: Run Pytest | |
| # if: ${{ env.early-stop == 'false' }} | |
| # shell: bash | |
| # run: | | |
| # ( | |
| # set +e | |
| # py.test -v --capture=tee-sys -rfE -s tests/test_examples_run.py --disable-pytest-warnings | |
| # EXIT_CODE=$? | |
| # if [ $EXIT_CODE -eq 0 ]; then | |
| # echo "TEST_RESULT=PASSED" >> $GITHUB_ENV | |
| # else | |
| # echo "TEST_RESULT=FAILED" >> $GITHUB_ENV | |
| # fi | |
| # ) | |
| # # Commit the results if update results | |
| # - name: Push new results to branch | |
| # shell: bash | |
| # if: ${{ env.early-stop == 'false' && env.update_results == 'true' }} | |
| # run: | | |
| # git config --local user.name github-actions[bot] | |
| # git config --local user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| # git status | |
| # git pull | |
| # git add tests/results/ | |
| # git diff --cached --quiet || git commit -s -m "github-actions[bot]: Run examples: updated result files on your behalf" | |
| # git push | |
| # # Patch config with update_results to false and commit to PR | |
| # - name: Patch tests/test_examples_run.yaml with update_results to False, only for the last job in the series | |
| # if: ${{ env.early-stop == 'false' && env.update_results == 'true' && matrix.python-version == '3.13' }} | |
| # shell: bash | |
| # run: | | |
| # yq -i '.update_results = ('false')' tests/test_examples_run.yaml | |
| # - name: Push the new run-examples yaml config | |
| # if: ${{ env.early-stop == 'false' && env.update_results == 'true' && matrix.python-version == '3.13' }} | |
| # shell: bash | |
| # run: | | |
| # git config --local user.name github-actions[bot] | |
| # git config --local user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| # git remote set-url origin https://${{ secrets.PDL_PAT }}@github.com/${{ github.event.pull_request.head.repo.full_name }}.git | |
| # git status | |
| # git pull origin ${{ github.head_ref }} | |
| # git add tests/test_examples_run.yaml | |
| # git diff --cached --quiet || git commit -s -m "github-actions[bot]: Run examples: reverting update_result to false on your behalf" | |
| # git push origin ${{ github.head_ref }} | |
| # - name: Check if pytest passed | |
| # shell: bash | |
| # if: ${{ env.early-stop == 'false' }} | |
| # run: | | |
| # if [ "$TEST_RESULT" == "PASSED" ]; then | |
| # exit 0 | |
| # else | |
| # exit 1 | |
| # fi | |