Update aind-data-schema package version to 2.2.0
#155
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: VrForaging test suite | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| bump_type: | |
| description: "Version bump type" | |
| required: false | |
| default: "rc" | |
| type: choice | |
| options: | |
| - rc | |
| - patch | |
| - minor | |
| - major | |
| - stable | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - dev* | |
| - release* | |
| release: | |
| types: [published] | |
| jobs: | |
| # ╔──────────────────────────╗ | |
| # │ _____ _ │ | |
| # │ |_ _|__ ___| |_ ___ │ | |
| # │ | |/ _ \/ __| __/ __| │ | |
| # │ | | __/\__ \ |_\__ \ │ | |
| # │ |_|\___||___/\__|___/ │ | |
| # │ │ | |
| # ╚──────────────────────────╝ | |
| tests: | |
| runs-on: windows-latest | |
| name: VrForaging unit tests | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Install python dependencies | |
| run: uv sync | |
| - name: Run ruff format | |
| run: uv run ruff format | |
| - name: Run ruff check | |
| run: uv run ruff check | |
| - name: Run codespell | |
| run: uv run codespell | |
| - name: Setup .NET Core SDK | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 8.x | |
| - name: Restore dotnet tools | |
| run: dotnet tool restore | |
| - name: Setup Bonsai environment | |
| working-directory: ./bonsai | |
| run: ./setup.ps1 | |
| - name: Run python unit tests | |
| run: uv run python -m unittest | |
| - name: Regenerate schemas | |
| run: uv run vr-foraging regenerate | |
| - name: Check for uncommitted changes | |
| run: | | |
| git config --global core.safecrlf false | |
| git diff --exit-code || (echo "Untracked changes found" && exit 1) | |
| # ╔───────────────────────────────────────────────────────────╗ | |
| # │ ____ ___ ____ ____ ____ _ │ | |
| # │ / ___|_ _/ ___| _ \ | _ \ ___| | ___ __ _ ___ ___ │ | |
| # │ | | | | | | | | | | |_) / _ \ |/ _ \/ _` / __|/ _ \ │ | |
| # │ | |___ | | |___| |_| | | _ < __/ | __/ (_| \__ \ __/ │ | |
| # │ \____|___\____|____/ |_| \_\___|_|\___|\__,_|___/\___| │ | |
| # │ │ | |
| # ╚───────────────────────────────────────────────────────────╝ | |
| github-rc-release: | |
| needs: tests | |
| runs-on: windows-latest | |
| if: > | |
| github.ref == 'refs/heads/main' && | |
| github.event_name == 'push' && | |
| github.event.head_commit.author.email != 'github-actions[bot]@users.noreply.github.com' | |
| name: Create GitHub pre-release | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| ref: main | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Bump pre-release by default | |
| # Note: Bumping the rc will fail if the version is not currently an rc | |
| # To solve it, we bump the patch and rc atomically | |
| shell: bash # interop with win/linux for if statement | |
| run: | | |
| if uv version --bump rc --dry-run; then | |
| uv version --bump rc | |
| else | |
| uv version --bump rc --bump patch | |
| fi | |
| - name: Regenerate schemas | |
| run: uv run vr-foraging regenerate | |
| - name: Commit version and schema changes | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| git add . | |
| git commit -m "Bump version and regenerate schemas [skip ci]" || echo "No changes to commit" | |
| git push origin main | |
| - name: Get version | |
| id: get_version | |
| shell: bash | |
| run: | | |
| version=$(uv version --short) | |
| echo "version=$version" >> $GITHUB_OUTPUT | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ steps.get_version.outputs.version }} | |
| name: v${{ steps.get_version.outputs.version }} | |
| generate_release_notes: true | |
| prerelease: true | |
| body: | | |
| Automated pre-release v${{ steps.get_version.outputs.version }} | |
| # ╔─────────────────────────────────────────────────────────────────╗ | |
| # │ ____ _ _ _ ____ _ │ | |
| # │ | _ \ _ _| |__ | (_) ___ | _ \ ___| | ___ __ _ ___ ___ │ | |
| # │ | |_) | | | | '_ \| | |/ __| | |_) / _ \ |/ _ \/ _` / __|/ _ \ │ | |
| # │ | __/| |_| | |_) | | | (__ | _ < __/ | __/ (_| \__ \ __/ │ | |
| # │ |_| \__,_|_.__/|_|_|\___| |_| \_\___|_|\___|\__,_|___/\___| │ | |
| # │ │ | |
| # ╚─────────────────────────────────────────────────────────────────╝ | |
| prepare-public-release: | |
| runs-on: windows-latest | |
| name: Prepare files for public release | |
| needs: tests | |
| if: github.event_name == 'workflow_dispatch' | |
| outputs: | |
| version: ${{ steps.get_version.outputs.version }} | |
| is_prerelease: ${{ steps.check_prerelease.outputs.prerelease }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| ref: main | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Get target version | |
| id: get_version | |
| shell: bash | |
| run: | | |
| # Use bump type from input (defaults to rc) | |
| bump_type="${{ github.event.inputs.bump_type || 'rc' }}" | |
| echo "Bumping version with type: $bump_type" | |
| # Handle version bumping based on type | |
| if [[ "$bump_type" == "rc" ]]; then | |
| # Handle rc bumping logic (same as in github-rc-release) | |
| if uv version --bump rc --dry-run; then | |
| uv version --bump rc | |
| else | |
| uv version --bump rc --bump patch | |
| fi | |
| else | |
| # Handle patch, minor, major, stable | |
| uv version --bump $bump_type | |
| fi | |
| release_version=$(uv run uv version --short) | |
| echo "version=$release_version" >> $GITHUB_OUTPUT | |
| echo "Release version will be: $release_version" | |
| - name: Validate version format | |
| run: uv version ${{ steps.get_version.outputs.version }} --dry-run | |
| - name: Update package version | |
| run: uv version ${{ steps.get_version.outputs.version }} | |
| - name: Regenerate schemas | |
| run: uv run vr-foraging regenerate | |
| - name: Commit version, schema changes and create tag | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| git add . | |
| git commit -m "Release v${{ steps.get_version.outputs.version }} [skip ci]" | |
| git tag -a "v${{ steps.get_version.outputs.version }}" -m "v${{ steps.get_version.outputs.version }}" | |
| git push origin main | |
| git push origin "v${{ steps.get_version.outputs.version }}" | |
| - name: Determine if prerelease | |
| id: check_prerelease | |
| shell: bash | |
| run: | | |
| version="${{ steps.get_version.outputs.version }}" | |
| if [[ "$version" == *"rc"* ]]; then | |
| echo "prerelease=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "prerelease=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ steps.get_version.outputs.version }} | |
| name: Release v${{ steps.get_version.outputs.version }} | |
| generate_release_notes: true | |
| prerelease: ${{ steps.check_prerelease.outputs.prerelease }} | |
| body: | | |
| Release v${{ steps.get_version.outputs.version }} | |
| This release was manually triggered. | |
| publish-to-pypi: | |
| runs-on: windows-latest | |
| name: Publish to PyPI | |
| needs: [tests, prepare-public-release] | |
| if: | | |
| (github.event_name == 'workflow_dispatch') || | |
| (github.event_name == 'release' && | |
| github.event.action == 'published' && | |
| !github.event.release.prerelease && | |
| startsWith(github.ref, 'refs/tags/v')) | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event_name == 'workflow_dispatch' && 'main' || github.ref_name }} | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Verify version consistency (for automatic releases) | |
| if: github.event_name == 'release' | |
| shell: bash | |
| run: | | |
| tag_version=$(echo "${{ github.ref_name }}" | sed 's/^v//') | |
| package_version=$(uv run uv version --short) | |
| if [[ "$tag_version" != "$package_version" ]]; then | |
| echo "ERROR: Tag version ($tag_version) doesn't match package version ($package_version)" | |
| exit 1 | |
| fi | |
| echo "✅ Version consistency verified: $tag_version" | |
| - name: Get current version (for manual releases) | |
| if: github.event_name == 'workflow_dispatch' | |
| shell: bash | |
| run: | | |
| package_version=$(uv run uv version --short) | |
| echo "📦 Publishing version: $package_version" | |
| - name: Build | |
| run: uv build | |
| - name: Publish to PyPI | |
| run: uv publish --token ${{ secrets.AIND_PYPI_TOKEN }} | |
| # ╔─────────────────────────╗ | |
| # │ ____ │ | |
| # │ | _ \ ___ ___ ___ │ | |
| # │ | | | |/ _ \ / __/ __| │ | |
| # │ | |_| | (_) | (__\__ \ │ | |
| # │ |____/ \___/ \___|___/ │ | |
| # │ │ | |
| # ╚─────────────────────────╝ | |
| build-docs: | |
| name: Build and deploy documentation to GitHub Pages | |
| runs-on: ubuntu-latest | |
| needs: github-rc-release | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Setup Graphviz | |
| uses: ts-graphviz/setup-graphviz@v2 | |
| - name: Install docs group of dependencies | |
| run: uv sync --group docs | |
| - name: Build Sphinx documentation | |
| run: uv run sphinx-build -b html docs/ _build/html | |
| - name: Deploy to GitHub Pages | |
| uses: peaceiris/actions-gh-pages@v4 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: _build/html | |
| force_orphan: true |