diff --git a/.github/workflows/ci_extra.yml b/.github/workflows/ci_extra.yml new file mode 100644 index 0000000..fd63829 --- /dev/null +++ b/.github/workflows/ci_extra.yml @@ -0,0 +1,36 @@ +# This workflow is for any branch. It runs additional tests for several python versions. + +name: Build extra + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10"] + + steps: + + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Lint with pylint + run: | + pylint pyformlang || true + - name: Lint with pycodestyle + run: | + pycodestyle pyformlang || true + - name: Test with pytest + run: | + pytest --showlocals -v pyformlang diff --git a/.github/workflows/ci_feature.yml b/.github/workflows/ci_feature.yml new file mode 100644 index 0000000..42f1165 --- /dev/null +++ b/.github/workflows/ci_feature.yml @@ -0,0 +1,51 @@ +# This workflow is for feature branches. It sets up python, lints with several analyzers, +# runs tests, collects test coverage and makes a coverage comment. + +name: Build feature + +on: + push: + branches-ignore: "master" + pull_request: + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.8"] + + steps: + + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Lint with pylint + run: | + pylint pyformlang || true + - name: Lint with pycodestyle + run: | + pycodestyle pyformlang || true + - name: Test with pytest + run: | + pytest --showlocals -v pyformlang + + - name: Build coverage file + run: | + pytest pyformlang --junitxml=pytest.xml --cov=pyformlang | tee ./pytest-coverage.txt + - name: Make coverage comment + uses: MishaKav/pytest-coverage-comment@main + id: coverageComment + with: + pytest-coverage-path: ./pytest-coverage.txt + junitxml-path: ./pytest.xml + default-branch: master diff --git a/.github/workflows/python-package.yml b/.github/workflows/ci_master.yml similarity index 68% rename from .github/workflows/python-package.yml rename to .github/workflows/ci_master.yml index caf70a6..cc14bef 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/ci_master.yml @@ -1,9 +1,11 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions +# This workflow is for master branch only. It sets up python, lints with several analyzers, +# runs tests, collects test coverage, makes a coverage comment and creates a coverage badge. -name: Python package +name: Build master -on: [push, pull_request] +on: + push: + branches: "master" jobs: build: @@ -12,9 +14,10 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.8"] steps: + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 @@ -23,8 +26,8 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install -r requirements.txt + - name: Lint with pylint run: | pylint pyformlang || true @@ -34,20 +37,19 @@ jobs: - name: Test with pytest run: | pytest --showlocals -v pyformlang + - name: Build coverage file - if: ${{ matrix.python-version == '3.8'}} run: | pytest pyformlang --junitxml=pytest.xml --cov=pyformlang | tee ./pytest-coverage.txt - - name: Pytest coverage comment - if: ${{ matrix.python-version == '3.8'}} + - name: Make coverage comment uses: MishaKav/pytest-coverage-comment@main id: coverageComment with: pytest-coverage-path: ./pytest-coverage.txt junitxml-path: ./pytest.xml default-branch: master + - name: Create coverage Badge - if: ${{ github.ref_name == 'master' && matrix.python-version == '3.8'}} uses: schneegans/dynamic-badges-action@v1.0.0 with: auth: ${{ secrets.GIST_SECRET }}