chore: add check for emscripten #1166
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: "linux tests and documentation build for 'kiara'" | |
| # This workflow is triggered on pushes to the repository. | |
| on: [push] | |
| jobs: | |
| commitlint: | |
| name: lint commit message | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: wagoid/commitlint-github-action@v6 | |
| test-linux: | |
| name: pytest on linux | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python_version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: create lockfile | |
| run: uv lock --python ${{ matrix.python_version }} | |
| - name: add core_types plugin | |
| run: uv add git+https://github.com/DHARPA-project/kiara_plugin.core_types@develop | |
| - name: add tabular plugin | |
| run: uv add git+https://github.com/DHARPA-project/kiara_plugin.tabular@develop | |
| - name: install the project | |
| run: uv sync --locked --dev --python ${{ matrix.python_version }} | |
| - name: display installed kiara and module package versions | |
| run: uv pip list | grep kiara | |
| - name: test with pytest | |
| run: uv run pytest --cov-report=xml --cov=kiara tests | |
| - name: Coveralls | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel: true | |
| flag-name: run ${{ join(matrix.*, ' - ') }} | |
| format: cobertura | |
| file: coverage.xml | |
| coverage: | |
| name: test coverage | |
| runs-on: ubuntu-latest | |
| needs: | |
| - test-linux | |
| steps: | |
| - name: Coveralls Finished | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel-finished: true | |
| mypy-linux: | |
| name: mypy check on linux | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python_version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: install Python | |
| run: uv python install ${{ matrix.python_version }} | |
| - name: create lockfile | |
| run: uv lock --python ${{ matrix.python_version }} | |
| - name: install the project | |
| run: uv sync --locked --dev --extra zmq --python ${{ matrix.python_version }} | |
| - name: Test with mypy | |
| run: make mypy | |
| linting-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: astral-sh/ruff-action@v3 | |
| with: | |
| version: "latest" | |
| args: "--version" | |
| - name: Run ruff check | |
| run: ruff check src/ | |
| - name: Run ruff check | |
| run: ruff format --check --diff src/ | |
| build_docs: | |
| name: build latest docs | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: git config --global user.email "[email protected]" | |
| - run: git config --global user.name "Markus Binsteiner" | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: extract tag name | |
| run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| - name: build docs | |
| run: uv run mike deploy --push latest | |
| publish_docs: | |
| name: build & publish docs | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build_docs | |
| - test-linux | |
| - mypy-linux | |
| - linting-linux | |
| - build_conda_package | |
| - build_python_package | |
| steps: | |
| - run: git config --global user.email "[email protected]" | |
| - run: git config --global user.name "Markus Binsteiner" | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: extract tag name | |
| run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| - name: build & publish docs | |
| run: uv run mike deploy --push --update-aliases "v${RELEASE_VERSION}" stable | |
| - name: update latest alias in docs | |
| run: uv run mike set-default --push stable | |
| build_python_package: | |
| name: build python package | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: pip cache | |
| id: pip-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-3.12 | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install pip | |
| run: pip install -U pip setuptools setuptools_scm build wheel | |
| - name: create packages | |
| run: python -m build | |
| - name: upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-dists | |
| path: dist/ | |
| publish_python_package: | |
| name: publish python package | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build_docs | |
| - test-linux | |
| - mypy-linux | |
| - linting-linux | |
| - build_conda_package | |
| - build_python_package | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| steps: | |
| - name: Retrieve build distributions | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: build-dists | |
| path: dist/ | |
| - name: Publish release distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| build_conda_package: | |
| name: conda package build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: "Set up Python 3.12" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: pip cache | |
| id: pip-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-3.12 | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: install kiara_plugin.develop | |
| run: pip install -U git+https://github.com/DHARPA-project/kiara_plugin.develop@develop | |
| - name: build conda package | |
| run: kiara build conda pkg --channel dharpa --channel conda-forge --patch-data ci/conda/conda-pkg-patch.yaml --output-folder build-dir . | |
| - name: upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: conda-pkgs | |
| path: build-dir/ | |
| release_conda_package: | |
| name: publish python package to anaconda | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build_docs | |
| - test-linux | |
| - mypy-linux | |
| - linting-linux | |
| - build_python_package | |
| - build_conda_package | |
| steps: | |
| - name: "Set up Python 3.12" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: pip cache | |
| id: pip-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-3.12 | |
| - name: install kiara_plugin.develop | |
| run: pip install -U git+https://github.com/DHARPA-project/kiara_plugin.develop@develop | |
| - name: Retrieve build distributions | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: conda-pkgs | |
| path: build-dir/ | |
| - name: release conda package | |
| run: kiara build conda publish --user dharpa --channel main --token ${{ secrets.ANACONDA_PUSH_TOKEN }} build-dir | |
| merge_tag_to_main: | |
| name: merge current tag to main branch | |
| runs-on: ubuntu-latest | |
| if: ${{ startsWith(github.ref, 'refs/tags') }} | |
| needs: | |
| - build_docs | |
| - test-linux | |
| - mypy-linux | |
| - linting-linux | |
| - build_conda_package | |
| - build_python_package | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - run: git config --global user.email "[email protected]" | |
| - run: git config --global user.name "Markus Binsteiner" | |
| - name: extract tag name | |
| run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| - name: checkout main branch | |
| run: git checkout main | |
| - name: merge tag | |
| run: git merge "${RELEASE_VERSION}" | |
| - name: push updated main branch | |
| run: git push https://${{ secrets.GITHUB_TOKEN }}@github.com/DHARPA-Project/kiara.git |