ci: misformatted variable #78
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: Build | |
| on: | |
| workflow_call: | |
| inputs: | |
| version: | |
| description: "Version to build (x.x.x)" | |
| type: string | |
| required: false | |
| default: '' | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| validate-docs: | |
| name: Validate Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10.6' | |
| - name: Setup UV | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --group docs | |
| - name: Build documentation | |
| run: make docs | |
| - name: Check for uncommitted documentation changes | |
| run: | | |
| if [ -n "$(git status --porcelain docs/)" ]; then | |
| echo "::error::Generated documentation is out of date. Please run 'make -C docs docs' and commit the changes." | |
| echo "" | |
| echo "The following files have uncommitted changes:" | |
| git status --porcelain docs/ | |
| echo "" | |
| echo "Diff:" | |
| git diff docs/ | |
| exit 1 | |
| fi | |
| echo "✅ Documentation is up to" | |
| - name: Rdme Dry Run | |
| env: | |
| RDME_API_KEY: ${{ secrets.RDME_API_KEY }} | |
| run: | | |
| npm install -g rdme | |
| rdme docs upload docs/src/_build/readmeio/ --dry-run | |
| lint: | |
| name: Lint and Type Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10.6' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Install dependencies | |
| shell: bash | |
| run: uv sync --group dev | |
| - name: Run ruff linter | |
| shell: bash | |
| run: uv run ruff check . | |
| - name: Run ruff formatter check | |
| shell: bash | |
| run: uv run ruff format --check . | |
| - name: Run basedpyright type checker | |
| shell: bash | |
| run: uv run basedpyright | |
| test: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10.6' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Install dependencies | |
| shell: bash | |
| run: uv sync --group dev | |
| - name: Run tests | |
| run: uv run pytest tests/ -v | |
| python-package: | |
| name: Python Package | |
| needs: | |
| - lint | |
| - test | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10.6' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Update version | |
| shell: bash | |
| if: inputs.version != '' | |
| run: uv version ${{ inputs.version }} | |
| - name: Build wheel | |
| shell: bash | |
| run: | | |
| uv build | |
| - name: Upload wheel artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-wheel | |
| path: dist/*.whl | |
| retention-days: 90 | |
| - name: Upload sdist artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-sdist | |
| path: dist/*.tar.gz | |
| retention-days: 90 | |
| build-binaries: | |
| name: ${{ matrix.platform }} Binary | |
| needs: | |
| - lint | |
| - test | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu22-2cpu-amd64 | |
| platform: linux-amd64 | |
| - runner: ubuntu22-2cpu-arm64 | |
| platform: linux-arm64 | |
| - runner: macos-latest | |
| platform: macos-arm64 | |
| - runner: windows-latest | |
| platform: windows | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10.6' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Update version | |
| shell: bash | |
| if: inputs.version != '' | |
| run: uv version ${{ inputs.version }} | |
| - name: Install dependencies | |
| shell: bash | |
| run: uv sync --group build | |
| - name: Build binary | |
| shell: bash | |
| run: | | |
| uv run pyinstaller src/lumos/__main__.py --name lumos | |
| VERSION="${{ inputs.version || 'dev' }}" | |
| tar -czf lumos-${{ matrix.platform }}-v${VERSION}.tar.gz -C ./dist/lumos . | |
| - name: Upload artifacts to workflow | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lumos-${{ matrix.platform }}-v${{ inputs.version || 'dev' }} | |
| path: lumos-${{ matrix.platform }}-v${{ inputs.version || 'dev' }}.tar.gz | |
| retention-days: 90 | |
| test-binaries: | |
| name: Test ${{ matrix.platform }} Binary | |
| needs: build-binaries | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu22-2cpu-amd64 | |
| platform: linux-amd64 | |
| - runner: ubuntu22-2cpu-arm64 | |
| platform: linux-arm64 | |
| - runner: macos-latest | |
| platform: macos-arm64 | |
| - runner: windows-latest | |
| platform: windows | |
| steps: | |
| - name: Download binary artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: lumos-${{ matrix.platform }}-v${{ inputs.version || 'dev' }} | |
| - name: Extract and test binary (Unix) | |
| if: matrix.platform != 'windows' | |
| shell: bash | |
| run: | | |
| tar -xzf lumos-${{ matrix.platform }}-v${{ inputs.version || 'dev' }}.tar.gz | |
| chmod +x lumos | |
| ./lumos --version | |
| - name: Extract and test binary (Windows) | |
| if: matrix.platform == 'windows' | |
| shell: pwsh | |
| run: | | |
| tar -xzf lumos-${{ matrix.platform }}-v${{ inputs.version || 'dev' }}.tar.gz | |
| .\lumos.exe --version |