Skip to content

Merge branch 'develop' #5

Merge branch 'develop'

Merge branch 'develop' #5

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.11"
- 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
- name: Zip macOS app
if: matrix.os == 'macos-latest'
run: |
cd dist
zip -r VARS\ GridView.zip VARS\ GridView.app
cd ..
- name: Upload zipped macOS app
uses: actions/upload-artifact@v3
if: matrix.os == 'macos-latest'
with:
name: macos-latest-app-${{ github.sha }}
path: "dist/VARS GridView.zip"
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 zipped macOS app
uses: actions/download-artifact@v3
with:
name: macos-latest-app-${{ github.sha }}
path: "dist/VARS GridView.zip"
- name: Python semantic release
uses: python-semantic-release/python-semantic-release@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
vcs_release: true