Skip to content

Add python-semantic-release package #1

Add python-semantic-release package

Add python-semantic-release package #1

Workflow file for this run

# GitHub action for CI: build and semantic release
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
poetry-build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.10
- name: Cache Poetry
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-
- name: Install dependencies
run: |
pip install poetry
poetry install
- name: Build package
run: |
poetry build
semantic-release-version:
runs-on: ubuntu-latest
needs: poetry-build
concurrency: semantic-release-version
permissions:
id-token: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Python semantic release
uses: python-semantic-release/python-semantic-release@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
vcs_release: false
pyinstaller-build:
runs-on: ${{ matrix.os }}
needs: semantic-release-version
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: [3.11]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Cache Poetry
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-
- name: Install dependencies
run: |
pip install poetry
poetry install
- name: Build distributable
run: |
poetry run pyinstaller run.spec
poetry version -s >> $POETRY_VERSION
- name: Upload macOS app
uses: actions/upload-artifact@v3
if: matrix.os == 'macos-latest'
with:
name: macos-latest-app-${{ github.sha }}
path: "dist/VARS GridView.app"
semantic-release-publish:
runs-on: ubuntu-latest
needs: pyinstaller-build
concurrency: semantic-release-publish
permissions:
id-token: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# - name: Download Ubuntu artifact
# uses: actions/download-artifact@v3
# with:
# name: ubuntu-latest-dist
# - name: Download Windows artifact
# uses: actions/download-artifact@v3
# with:
# name: windows-latest-dist
- name: Download macOS app
uses: actions/download-artifact@v3
with:
name: macos-latest-app-${{ github.sha }}
path: "dist/VARS GridView v${{ env.POETRY_VERSION }}.app"
- name: Python semantic release
uses: python-semantic-release/python-semantic-release@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
vcs_release: true