Skip to content

refactor(blender): stabilize naming synchronization and decouple translator architecture #695

refactor(blender): stabilize naming synchronization and decouple translator architecture

refactor(blender): stabilize naming synchronization and decouple translator architecture #695

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
lint-and-type:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: "3.12"
enable-cache: true
- name: Install just
uses: taiki-e/install-action@just
- name: Install dependencies
run: just install
- name: Code Quality
run: just check
- name: Action Quality (actionlint)
uses: reviewdog/action-actionlint@v1
tests:
name: Tests (${{ matrix.python-version }})
needs: lint-and-type
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
- name: Install just
uses: taiki-e/install-action@just
- name: Install dependencies
run: just install
- name: Build documentation
run: |
cd docs
uv run sphinx-build -b html -W source build/html
- name: Run Core & Logic Tests
run: just test-core test-blender-logic
- name: Setup Blender
id: setup-blender
uses: ./.github/actions/setup-blender
with:
version: '4.2.0'
- name: Run Blender Integration Tests
env:
BLENDER_PATH: ${{ steps.setup-blender.outputs.blender-path }}
run: just test-blender
- name: Build package
if: github.ref == 'refs/heads/main' && github.event_name == 'push' && matrix.python-version == '3.12'
run: |
just build
ls -lh dist/
- name: Upload artifact
if: github.ref == 'refs/heads/main' && github.event_name == 'push' && matrix.python-version == '3.12'
uses: actions/upload-artifact@v7
with:
name: blender-extension
path: dist/linkforge-*.zip
retention-days: 7
check-and-build:
name: Check & Build
needs: [lint-and-type, tests, link-checker]
runs-on: ubuntu-latest
if: always()
steps:
- name: Pass if all jobs succeeded
if: needs.lint-and-type.result == 'success' && needs.tests.result == 'success' && needs.link-checker.result == 'success'
run: exit 0
- name: Fail if jobs failed
if: needs.lint-and-type.result != 'success' || needs.tests.result != 'success' || needs.link-checker.result != 'success'
run: exit 1
link-checker:
name: Link Checker
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Link Checker (lychee)
uses: lycheeverse/lychee-action@v2
with:
args: >-
--verbose --no-progress
--exclude ".*\.local"
--exclude "https://www.mec.ed.tum.de/en/iwb/.*"
--exclude "https://cmp.felk.cvut.cz/~peckama2/"
--exclude "https://www.gnu.org/licenses/gpl-3.0"
--exclude "https://monorepo.tools/"
--exclude "https://www.conventionalcommits.org/"
--exclude "https://github.com/[^/]+$"
--exclude-path "docs/source/.*[a-z0-9]$"
README.md docs/
fail: true