Re-add envvar required by pulp-cli tests #604
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: "Test bootstrapping a plugin" | |
| on: {pull_request: {branches: ['*']}} | |
| concurrency: | |
| group: ${{ github.ref_name }}-${{ github.workflow }} | |
| cancel-in-progress: true | |
| defaults: | |
| run: | |
| working-directory: "pulp_catdog" | |
| jobs: | |
| check-commits: | |
| runs-on: "ubuntu-latest" | |
| steps: | |
| - uses: "actions/checkout@v6" | |
| with: | |
| fetch-depth: 0 | |
| path: "plugin_template" | |
| - uses: "actions/setup-python@v6" | |
| with: | |
| python-version: "3.11" | |
| - name: "Bootstrap catdog plugin" | |
| working-directory: "plugin_template" | |
| run: | | |
| .ci/bootstrap_catdog.sh | |
| # Below this line we include the steps of the ci workflow of the generated plugin | |
| - name: "Install python dependencies" | |
| run: | | |
| pip install requests pygithub pyyaml | |
| - name: "Check commit message" | |
| # This will fail for our fake plugin | |
| if: false | |
| env: | |
| PY_COLORS: "1" | |
| ANSIBLE_FORCE_COLOR: "1" | |
| GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
| GITHUB_CONTEXT: "${{ github.event.pull_request.commits_url }}" | |
| run: | | |
| .github/workflows/scripts/check_commit.sh | |
| check-changes: | |
| runs-on: "ubuntu-latest" | |
| outputs: | |
| run_tests: "${{ steps.check.outputs.run_tests }}" | |
| run_docs: "${{ steps.check.outputs.run_docs }}" | |
| steps: | |
| - uses: "actions/checkout@v6" | |
| with: | |
| fetch-depth: 0 | |
| path: "plugin_template" | |
| - name: "Analyze changed files" | |
| id: "check" | |
| shell: "bash" | |
| working-directory: "plugin_template" | |
| run: | | |
| # This check is completely gutted here. It doesn't play nice with boostrapping. | |
| # We just assume we want to see all tests. | |
| echo "run_docs=1" >> $GITHUB_OUTPUT | |
| echo "run_tests=1" >> $GITHUB_OUTPUT | |
| lint: | |
| uses: "./.github/workflows/lint.yml" | |
| sanity: | |
| uses: "./.github/workflows/sanity.yml" | |
| build: | |
| needs: | |
| - "check-changes" | |
| - "lint" | |
| if: "needs.check-changes.outputs.run_tests == '1'" | |
| uses: "./.github/workflows/build.yml" | |
| test: | |
| needs: "build" | |
| uses: "./.github/workflows/test.yml" | |
| with: | |
| matrix_env: | | |
| [{"TEST": "pulp"}, {"TEST": "azure"}, {"TEST": "gcp"}, {"TEST": "s3"}, {"TEST": "lowerbounds"}] | |
| deprecations: | |
| runs-on: "ubuntu-latest" | |
| if: "github.base_ref == 'main'" | |
| needs: "test" | |
| steps: | |
| - name: "Create working directory" | |
| run: | | |
| mkdir -p "pulp_catdog" | |
| working-directory: "." | |
| - name: "Download Deprecations" | |
| uses: "actions/download-artifact@v8" | |
| with: | |
| pattern: "deprecations-*" | |
| path: "pulp_catdog" | |
| merge-multiple: true | |
| - name: "Print deprecations" | |
| run: | | |
| cat deprecations-*.txt | sort -u | |
| ! cat deprecations-*.txt | grep '[^[:space:]]' | |
| ready-to-ship: | |
| # This is a dummy dependent task to have a single entry for the branch protection rules. | |
| runs-on: "ubuntu-latest" | |
| needs: | |
| - "check-changes" | |
| - "check-commits" | |
| - "lint" | |
| - "test" | |
| - "sanity" | |
| if: "always()" | |
| steps: | |
| - name: "Collect needed jobs results" | |
| working-directory: "." | |
| run: | | |
| RUN_TESTS=${{ needs.check-changes.outputs.run_tests }} | |
| RUN_DOCS=${{ needs.check-changes.outputs.run_docs }} | |
| check_jobs() { | |
| local filter="$1" | |
| local needs_json='${{toJson(needs)}}' | |
| # output failed jobs after filter | |
| echo "$needs_json" | jq -r "to_entries[]|select($filter)|select(.value.result!=\"success\")|.key + \": \" + .value.result" | |
| # fails if not all selected jobs passed | |
| echo "$needs_json" | jq -e "to_entries|map(select($filter))|map(select(.value.result!=\"success\"))|length == 0" | |
| } | |
| if [ "$RUN_TESTS" == "1" ] && [ "$RUN_DOCS" == "1" ]; then | |
| FILTERS="true" # check all jobs | |
| elif [ "$RUN_TESTS" == "1" ] && [ "$RUN_DOCS" == "0" ]; then | |
| echo "Skipping docs: running on non-default branch" | |
| FILTERS='.key != "docs"' | |
| elif [ "$RUN_TESTS" == "0" ] && [ "$RUN_DOCS" == "1" ]; then | |
| echo "Skipping tests: only doc changes" | |
| FILTERS='.key != "lint" and .key != "test"' | |
| else # RUN_TESTS=0, RUN_DOCS=0 | |
| echo "What is this PR doing??" | |
| FILTERS='.key != "lint" and .key != "test" and .key != "docs"' | |
| fi | |
| check_jobs "$FILTERS" | |
| echo "CI says: Looks good!" | |
| ... |