Skip to content
Snippets Groups Projects
ci.yml 3.95 KiB
Newer Older
  • Learn to ignore specific revisions
  • name: CI
    on:
        push:
            branches:
    
            - main
    
        pull_request:
        schedule:
            - cron:  '17 3 * * 0'
    
    jobs:
    
        ruff:
            name: Ruff
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
    
                    pipx install ruff
                    ruff check
    
        typos:
            name: Typos
            runs-on: ubuntu-latest
            steps:
            -   uses: actions/checkout@v4
            -   uses: crate-ci/typos@master
    
    
        mypy:
            name: Mypy
            runs-on: ubuntu-latest
            steps:
            -   uses: actions/checkout@v4
            -
                uses: actions/setup-python@v5
                with:
                    python-version: '3.x'
            -   name: "Main Script"
                run: |
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
                    build_py_project_in_conda_env
                    python -m pip install mypy
                    mypy $(get_proj_name)
    
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
        pylint:
            name: Pylint
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
            -   name: "Main Script"
                run: |
                    USE_CONDA_BUILD=1
                    EXTRA_INSTALL="pyvisfile scipy matplotlib"
                    curl -L -O https://tiker.net/ci-support-v0
                    . ci-support-v0
                    build_py_project
    
    Andreas Klöckner's avatar
    Andreas Klöckner committed
                    run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py test/*.py
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
    
    
    Isuru Fernando's avatar
    Isuru Fernando committed
        docs:
            name: Documentation
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
    Isuru Fernando's avatar
    Isuru Fernando committed
            -   name: "Main Script"
                run: |
    
    Isuru Fernando's avatar
    Isuru Fernando committed
                    CONDA_ENVIRONMENT=.test-conda-env-py3.yml
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ci-support-v0
    
    Isuru Fernando's avatar
    Isuru Fernando committed
                    build_py_project_in_conda_env
    
    Isuru Fernando's avatar
    Isuru Fernando committed
                    build_docs
    
    
        pytest:
            name: Conda Pytest
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
                    grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml
                    CONDA_ENVIRONMENT=.test-conda-env.yml
    
                    curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh
    
                    . ./build-and-test-py-project-within-miniconda.sh
    
    
        pytest_symengine:
            name: Conda Pytest Symengine
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
    
                    curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh
    
                    . ./build-and-test-py-project-within-miniconda.sh
    
    
        examples:
            name: Conda Examples
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
                    grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml
                    CONDA_ENVIRONMENT=.test-conda-env.yml
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ci-support-v0
    
                    EXTRA_INSTALL="pyvisfile scipy"
    
                    build_py_project_in_conda_env
                    run_examples
    
    
        downstream_tests:
            strategy:
                matrix:
                    downstream_project: [pytential]
            name: Tests for downstream project ${{ matrix.downstream_project }}
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                env:
                    DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }}
                run: |
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
    
                    if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "e2p" ]]; then
                        DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@e2p
                    fi
    
                    test_downstream "$DOWNSTREAM_PROJECT"
    
    # vim: sw=4