v16.1.0 #96
Workflow file for this run
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
# This script can be tested locally with act: | |
# | |
# act --secret GITHUB_TOKEN=... --job release | |
# | |
# https://github.com/nektos/act/ | |
# To generate a token: https://github.com/settings/tokens (add r/w permissions for "Contents") | |
name: Release | |
on: | |
push: | |
tags: | |
- '*' | |
workflow_dispatch: | |
jobs: | |
release: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
# https://github.com/actions/runner-images#available-images | |
# It's important that we build the tutor binaries with the *oldest* possible | |
# OS releases and Python version. See these docs for more information: | |
# https://pyinstaller.org/en/stable/usage.html#making-gnu-linux-apps-forward-compatible | |
- os: ubuntu-20.04 | |
locale: C.UTF-8 | |
# https://endoflife.date/macos | |
- os: macos-11 | |
locale: en_US.UTF-8 | |
env: | |
LC_ALL: ${{ matrix.locale }} | |
LANG: ${{ matrix.locale }} | |
steps: | |
##### Setup environment | |
# https://github.com/actions/checkout | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
# https://github.com/actions/setup-python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
cache: 'pip' | |
cache-dependency-path: requirements/dev.txt | |
- name: Upgrade pip and setuptools | |
# https://pypi.org/project/pip/ | |
# https://pypi.org/project/setuptools/ | |
# https://pypi.org/project/wheel/ | |
run: python -m pip install --upgrade pip setuptools==65.6.3 wheel | |
- name: Print info about the current python installation | |
run: make ci-info | |
- name: Install requirements | |
run: make bootstrap-dev-plugins | |
##### Run tests, generate bundle | |
# - name: Run tests | |
# run: make test | |
- name: Create bundle | |
run: make bundle | |
# - name: Test bundle | |
# run: make ci-test-bundle | |
##### Download gh utility: https://github.com/cli/cli/releases | |
# This is unnecessary on GitHub, but useful when running locally with act. | |
# WARNING: this will only work on amd64 | |
- name: Check or download gh utility | |
run: | | |
if ! which gh; then | |
echo "Downloading 'gh' utility" | |
if [ "$(uname -s)" = "Linux" ]; then | |
curl -L -o gh.tar.gz https://github.com/cli/cli/releases/download/v2.28.0/gh_2.28.0_linux_amd64.tar.gz | |
tar xzf gh.tar.gz | |
mv ./gh_2.28.0_linux_amd64/bin/gh /usr/local/bin/gh | |
else | |
curl -L -o gh.zip https://github.com/cli/cli/releases/download/v2.28.0/gh_2.28.0_macOS_amd64.zip | |
unzip xzf gh.zip | |
mv ./gh_2.28.0_macOS_amd64/bin/gh /usr/local/bin/gh | |
fi | |
which gh | |
fi | |
##### Create release on GitHub | |
- name: Create or update GitHub release | |
run: scriv github-release --repo=overhangio/tutor | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
# scriv command will fail when not on a tag, such as running with act or a | |
# manual trigger. | |
if: ${{ github.ref_type == 'tag' }} | |
- name: Upload release asset to GitHub | |
run: | | |
export FILENAME="tutor-$(uname -s)_$(uname -m)" | |
mv ./dist/tutor $FILENAME | |
gh release upload --clobber v$(make version) $FILENAME | |
env: | |
GH_TOKEN: ${{ github.token }} |