name: ci on: [push] jobs: compile: runs-on: ubuntu-20.04 steps: - name: Checkout repo uses: actions/checkout@v3 - name: Set up python uses: actions/setup-python@v4 with: python-version: 3.7 - name: Bootstrap poetry run: | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 - name: Install dependencies run: poetry install - name: Compile run: poetry run mypy . test: runs-on: ubuntu-20.04 steps: - name: Checkout repo uses: actions/checkout@v3 - name: Set up python uses: actions/setup-python@v4 with: python-version: 3.7 - name: Bootstrap poetry run: | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 - name: Install dependencies run: poetry install - name: Test run: poetry run pytest . publish: needs: [compile, test] if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') runs-on: ubuntu-20.04 steps: - name: Checkout repo uses: actions/checkout@v3 - name: Set up python uses: actions/setup-python@v4 with: python-version: 3.7 - name: Bootstrap poetry run: | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 - name: Install dependencies run: poetry install - name: Publish to pypi run: | poetry config repositories.remote https://upload.pypi.org/legacy/ poetry --no-interaction -v publish --build --repository remote --username "$PYPI_USERNAME" --password "$PYPI_PASSWORD" env: PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}