name: CI on: push: branches: [ master ] tags: - 'v*.*.*' pull_request: branches: [ master ] jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7, 3.9] steps: - 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: | python -m pip install --upgrade pip python -m pip install '.[dev]' - name: Check code with isort run: | isort --check . - name: Check code with black run: | black --check . - name: Lint code with pylama run: | pylama - name: Test with pytest run: | # pytest deploy: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: '3.x' - id: check-tag run: | if [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo ::set-output name=match::true fi - name: Create PyPI release uses: casperdcl/deploy-pypi@v2 with: password: ${{ secrets.PYPI_TOKEN }} build: true # only upload if a tag is pushed (otherwise just build & check) upload: ${{ github.event_name == 'push' && steps.check-tag.outputs.match == 'true' }} - name: Create GitHub release if: ${{ github.event_name == 'push' && steps.check-tag.outputs.match == 'true' }} uses: Roang-zero1/github-create-release-action@master with: version_regex: ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+ changelog_file: "CHANGELOG.md" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}