Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 0 additions & 59 deletions .github/workflows/ci.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .github/workflows/docs.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/tag_and_publish.yml

This file was deleted.

214 changes: 214 additions & 0 deletions .github/workflows/vr-foraging-cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
name: VrForaging test suite

on:
workflow_dispatch:
pull_request:
push:
branches: ['*']
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: Set up Python
run: uv python install

- 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: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
name: Create GitHub pre-release
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ env.DEFAULT_BRANCH }}

- uses: astral-sh/setup-uv@v6
with:
enable-cache: true

- name: Set up Python
run: uv python install

- name: Bump pre-release by default
run: uv version --bump rc

- 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" || echo "No changes to commit"
git push origin ${{ env.DEFAULT_BRANCH }}

- name: Get version
id: get_version
run: |
version=$(uv version --output-format json | jq -r '.version')
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 }}

# ╔─────────────────────────────────────────────────────────────────╗
# │ ____ _ _ _ ____ _ │
# │ | _ \ _ _| |__ | (_) ___ | _ \ ___| | ___ __ _ ___ ___ │
# │ | |_) | | | | '_ \| | |/ __| | |_) / _ \ |/ _ \/ _` / __|/ _ \ │
# │ | __/| |_| | |_) | | | (__ | _ < __/ | __/ (_| \__ \ __/ │
# │ |_| \__,_|_.__/|_|_|\___| |_| \_\___|_|\___|\__,_|___/\___| │
# │ │
# ╚─────────────────────────────────────────────────────────────────╝

github-public-release:
runs-on: ubuntu-latest
name: Create GitHub public release
needs: tests
if: github.event_name == 'release' &&
github.event.action == 'published' &&
!github.event.release.prerelease
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ env.DEFAULT_BRANCH }}

- uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: Set up Python
run: uv python install

- name: Get release version from tag
id: get_version
run: echo "version=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT

- name: Validate version tag 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 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 "Set version and regenerate schemas" || echo "No changes to commit"
git push origin ${{ env.DEFAULT_BRANCH }}


# ╔─────────────────────────╗
# │ ____ │
# │ | _ \ ___ ___ ___ │
# │ | | | |/ _ \ / __/ __| │
# │ | |_| | (_) | (__\__ \ │
# │ |____/ \___/ \___|___/ │
# │ │
# ╚─────────────────────────╝
build-docs:
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: Set up Python
run: uv python install

- name: Install uv
uses: astral-sh/setup-uv@v3

- 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
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
project = "AIND VR Foraging"
copyright = "2025, Allen Institute for Neural Dynamics"
author = "Bruno Cruz"
release = aind_behavior_vr_foraging.__version__
release = aind_behavior_vr_foraging.__semver__

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down
Loading
Loading