| name: build |
| on: |
| push: |
| branches: [master] |
| pull_request: |
| branches: [master] |
| |
| jobs: |
| test: |
| runs-on: ${{ matrix.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| python-version: ['3.10', '3.11', '3.12'] |
| os: [ubuntu-latest, macOS-latest, windows-latest] |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v2 |
| |
| - name: Set up Python ${{ matrix.python-version }} |
| uses: actions/setup-python@v2 |
| with: |
| python-version: ${{ matrix.python-version }} |
| |
| - name: Install dependencies |
| run: | |
| pip install -r requirements_dev.txt |
| pip install coveralls |
| pip install pytest |
| |
| - name: Run tests |
| run: coverage run -m django test --settings=tests.settings |
| |
| - name: Upload coverage data to coveralls.io |
| run: coveralls --service=github |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| COVERALLS_FLAG_NAME: ${{ matrix.os }} - ${{ matrix.python-version }} |
| COVERALLS_PARALLEL: true |
| |
| lint: |
| name: Run Linters |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v2 |
| with: |
| fetch-depth: 0 |
| |
| - name: Super-Linter |
| uses: github/super-linter@v4.9.2 |
| env: |
| VALIDATE_ALL_CODEBASE: false |
| VALIDATE_PYTHON_BLACK: true |
| DEFAULT_BRANCH: master |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| LINTER_RULES_PATH: / |
| PYTHON_BLACK_CONFIG_FILE: pyproject.toml |
| |
| coveralls: |
| name: Indicate completion to coveralls.io |
| needs: test |
| runs-on: ubuntu-latest |
| container: python:3-slim |
| steps: |
| - name: Finished |
| run: | |
| pip3 install --upgrade coveralls |
| coveralls --finish |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| release: |
| name: Release |
| runs-on: ubuntu-latest |
| needs: [ test, coveralls ] |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v2 |
| with: |
| fetch-depth: 0 |
| |
| - name: Setup Node.js |
| uses: actions/setup-node@v2 |
| with: |
| node-version: '20' |
| |
| - name: Setup |
| run: npm install |
| |
| - name: Set up python |
| uses: actions/setup-python@v4 |
| with: |
| python-version: '3.12' |
| |
| - name: Release |
| env: |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} |
| run: npx semantic-release |