chore(release): 0.5.2 #35
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
name: release_github | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Custom tag to release as' | |
required: false | |
type: string | |
push: | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
env: | |
BUILD_PYTHON_VERSION: 3.8 | |
BUILD_POETRY_VERSION: 1.4 | |
jobs: | |
build_python: | |
runs-on: ubuntu-latest | |
env: | |
POETRY_VIRTUALENVS_CREATE: false | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ env.BUILD_PYTHON_VERSION }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.BUILD_PYTHON_VERSION }} | |
- name: Set up Poetry ${{ env.BUILD_POETRY_VERSION }} | |
uses: abatilo/actions-poetry@v2.0.0 | |
with: | |
poetry-version: ${{ env.BUILD_POETRY_VERSION }} | |
- name: Export requirements | |
run: poetry export -f requirements.txt --without-hashes --output requirements.txt | |
- name: Build project for distribution | |
run: poetry build | |
- name: Save release python requirements | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release_dist_reqs | |
path: requirements.txt | |
- name: Save release python packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release_dist_python | |
path: dist | |
build_mac: | |
needs: build_python | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Load release python requirements | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_reqs | |
path: build | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.BUILD_PYTHON_VERSION }} | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 14 | |
- name: Install requirements | |
run: | | |
brew install gnu-sed graphicsmagick imagemagick | |
npm install --global create-dmg | |
- name: Build | |
run: | | |
bash scripts/pyinstaller/build_mac.sh | |
bash scripts/macos/build_dmg.sh | |
# Remove directory produced by pyinstaller | |
bash -c 'find dist -maxdepth 1 -mindepth 1 -type d -exec rm -r {} \;' | |
- name: Save release binaries for macos x64 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release_dist_bin_macos_x64 | |
path: dist | |
build_win: | |
needs: build_python | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Load release python requirements | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_reqs | |
path: build | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.BUILD_PYTHON_VERSION }} | |
- name: Install requirements | |
uses: crazy-max/ghaction-chocolatey@v2 | |
with: | |
args: install wget zip | |
- name: Build | |
run: | | |
bash scripts/pyinstaller/build_win.sh | |
bash scripts/windows/build_packages.sh | |
# Remove directory produced by pyinstaller | |
bash -c 'find dist -maxdepth 1 -mindepth 1 -type d -exec rm -r {} \;' | |
- name: Save release binaries for windows x64 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release_dist_bin_windows_x64 | |
path: dist | |
build_appimage: | |
needs: build_python | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Load release python packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_python | |
path: dist | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.BUILD_PYTHON_VERSION }} | |
- name: Install requirements | |
run: | | |
sudo apt-get install -y desktop-file-utils appstream-util | |
- name: Build | |
run: | | |
bash scripts/linux_meta/build.sh | |
bash scripts/appimage/build.sh | |
- name: Save release binaries for linux x64 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release_dist_bin_linux_x64 | |
path: dist | |
release: | |
if: github.event_name == 'push' || github.event.inputs.tag != '' | |
needs: [build_win, build_mac, build_appimage] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Extract release notes | |
id: extract-release-notes | |
uses: ffurrer2/extract-release-notes@v1 | |
- name: Load release python packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_python | |
path: dist | |
- name: Load release binaries for linux x64 | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_bin_linux_x64 | |
path: dist | |
- name: Load release binaries for windows x64 | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_bin_windows_x64 | |
path: dist | |
- name: Load release binaries for macos x64 | |
uses: actions/download-artifact@v3 | |
with: | |
name: release_dist_bin_macos_x64 | |
path: dist | |
- name: Generate checksums | |
run: | | |
(cd dist && shasum -a 256 * > checksums.sha256) | |
- name: Create Release | |
if: github.event_name == 'push' | |
uses: ncipollo/release-action@v1 | |
with: | |
body: ${{ steps.extract-release-notes.outputs.release_notes }} | |
artifacts: "dist/*" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
draft: true | |
- name: Create Release (Custom Tag) | |
if: github.event_name != 'push' && github.event.inputs.tag != '' | |
uses: ncipollo/release-action@v1 | |
with: | |
body: ${{ steps.extract-release-notes.outputs.release_notes }} | |
artifacts: "dist/*" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
draft: true | |
tag: ${{ github.event.inputs.tag }} |