build(deps): bump the gh-actions group with 2 updates #82
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: E2E - Otto Upgrade | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'action.yaml' | |
| - 'scripts/**' | |
| - 'e2e/**' | |
| - '.github/workflows/e2e-otto-upgrade.yaml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Credential-free smoke test: detect -> resolve (live feed + PyPI) -> apply -> | |
| # verify -> render the PR body, all in dry-run. Opens no PR, needs no secrets, | |
| # runs under `act`. Exercises every step except the Otto migration (which needs | |
| # a token and Otto's airflow-upgrade skill). | |
| dry-run: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Otto Upgrade (dry-run) | |
| id: upgrade | |
| uses: ./ | |
| with: | |
| project-path: e2e/astro-project | |
| target: latest-minor | |
| max-upgrade-scope: minor | |
| verify-level: syntax | |
| dry-run: "true" # tokenless preview — Otto is skipped without a token | |
| - name: Assert the action produced a plan | |
| env: | |
| CURRENT: ${{ steps.upgrade.outputs.current-runtime }} | |
| TARGET: ${{ steps.upgrade.outputs.target-runtime }} | |
| SCOPE: ${{ steps.upgrade.outputs.overall-scope }} | |
| NOUP: ${{ steps.upgrade.outputs.no-update }} | |
| VERIFY: ${{ steps.upgrade.outputs.verify-status }} | |
| run: | | |
| set -euo pipefail | |
| echo "current=$CURRENT target=$TARGET scope=$SCOPE no-update=$NOUP verify=$VERIFY" | |
| [[ -n "$CURRENT" ]] || { echo "::error::no current runtime detected"; exit 1; } | |
| case "$SCOPE" in patch|minor|major) ;; *) echo "::error::unexpected scope '$SCOPE'"; exit 1;; esac | |
| [[ "$VERIFY" == "passed" ]] || { echo "::error::verify-status was '$VERIFY', expected passed"; exit 1; } | |
| echo "✅ dry-run produced a $SCOPE plan ($CURRENT -> $TARGET) and verification passed." | |
| # Real upgrade against the sample project. Runs only when the Astro secrets are | |
| # configured (skipped on forks / secret-less runs). Still dry-run so the e2e | |
| # never opens a PR against this repo — it proves the Otto migration path wires | |
| # up end to end. Requires Otto's airflow-upgrade skill to be reachable. | |
| live-dry-run: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: ${{ github.event_name == 'workflow_dispatch' }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Otto Upgrade (live, dry-run) | |
| if: ${{ env.ASTRO_API_TOKEN != '' }} | |
| env: | |
| ASTRO_API_TOKEN: ${{ secrets.ASTRO_API_TOKEN }} | |
| ASTRO_ORGANIZATION: ${{ secrets.ASTRO_ORGANIZATION }} | |
| uses: ./ | |
| with: | |
| project-path: e2e/astro-project | |
| target: latest-minor | |
| max-upgrade-scope: minor | |
| verify-level: import | |
| dry-run: "true" # token present + dry-run → Otto runs as a preview, no PR | |
| astro-api-token: ${{ secrets.ASTRO_API_TOKEN }} | |
| astro-organization: ${{ secrets.ASTRO_ORGANIZATION }} |