Publish release #61
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish release | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'New version number' | |
required: true | |
jobs: | |
build: | |
if: contains('["chrispyles"]', github.actor) | |
runs-on: ubuntu-latest | |
env: | |
TAR: /bin/tar | |
steps: | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.9" | |
- name: Only allow releases off of master (or temp for patches) | |
run: | | |
python3 -c 'import os, sys; sys.exit(os.environ["GITHUB_REF"] != "refs/heads/master" and os.environ["GITHUB_REF"] != "refs/heads/temp")' | |
- uses: liskin/gh-pipx@v1 | |
with: | |
packages: >- | |
poetry | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
poetry install --with dev --no-root | |
- name: Update versions | |
run: | | |
python3 release.py ${{ github.event.inputs.version }} | |
- name: Build tutorial | |
run: | | |
make tutorial | |
- name: Commit and push | |
run: | | |
git config --global user.name "github-actions" | |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git checkout -b release | |
git commit -am 'release v${{ github.event.inputs.version }}' | |
git push --set-upstream origin release | |
- name: Create dist and push to PyPI | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
run: | | |
poetry build | |
python3 -m twine upload dist/* | |
- name: Create a release on GitHub | |
env: | |
GITHUB_USER: ${{ secrets.GITHUB_USER }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh release create \ | |
--title 'v${{ github.event.inputs.version }}' \ | |
--target release \ | |
'v${{ github.event.inputs.version }}' \ | |
dist/*.tar.gz \ | |
dist/*.whl | |
- name: Create a latest tag | |
run: | | |
git tag -f latest | |
git push --force origin latest | |
- name: PR release -> main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh pr create \ | |
--repo ucbds-infra/otter-grader \ | |
--base master \ | |
--head ucbds-infra:release \ | |
--label "release" \ | |
--reviewer chrispyles \ | |
--milestone "v${{ github.event.inputs.version }}" \ | |
--title "Release v${{ github.event.inputs.version }}" \ | |
--body "Updates from the release of version ${{ github.event.inputs.version }}" |