test(utils): cover natural_sort and file pattern expand #1062
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: Auto-tag Release | |
| # When a release PR is merged, create and push the version tag. | |
| # The tag push then triggers the production release workflow. | |
| on: | |
| pull_request: | |
| types: [closed] | |
| jobs: | |
| create-tag: | |
| if: >- | |
| github.event.pull_request.merged == true && | |
| github.event.pull_request.base.ref == 'main' && | |
| startsWith(github.event.pull_request.title, 'release: ') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| id-token: write # required for Doppler OIDC | |
| steps: | |
| - name: Extract version from PR title | |
| id: version | |
| env: | |
| PR_TITLE: ${{ github.event.pull_request.title }} | |
| run: | | |
| VERSION="${PR_TITLE#release: }" | |
| if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "::error::Invalid version format: $VERSION" | |
| exit 1 | |
| fi | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| - name: 🔐 Fetch Doppler secrets | |
| uses: dopplerhq/secrets-fetch-action@cd2efbf9a404504316435873eff298b82f7e0562 # v1.3.0 | |
| id: secrets | |
| with: | |
| auth-method: oidc | |
| doppler-identity-id: ${{ vars.DOPPLER_IDENTITY_ID }} | |
| doppler-project: marimo-oss | |
| doppler-config: ci_deploy | |
| # Use a GitHub App token so the tag push triggers other workflows. | |
| # Tags pushed with the default GITHUB_TOKEN do not trigger workflows. | |
| - name: Generate app token | |
| id: app-token | |
| uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1 | |
| with: | |
| app-id: ${{ vars.RELEASE_APP_ID }} | |
| private-key: ${{ steps.secrets.outputs.RELEASE_APP_PRIVATE_KEY }} | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| ref: ${{ github.event.pull_request.merge_commit_sha }} | |
| token: ${{ steps.app-token.outputs.token }} | |
| - name: Verify version in pyproject.toml | |
| run: | | |
| TOML_VERSION=$(grep -m1 '^version' pyproject.toml | sed 's/.*"\(.*\)".*/\1/') | |
| if [ "$TOML_VERSION" != "${{ steps.version.outputs.version }}" ]; then | |
| echo "::error::Version mismatch: PR title says ${{ steps.version.outputs.version }}, pyproject.toml says $TOML_VERSION" | |
| exit 1 | |
| fi | |
| - name: Create and push tag | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| VERSION="${{ steps.version.outputs.version }}" | |
| git tag -a "$VERSION" -m "release: $VERSION" | |
| git push origin "$VERSION" |