Skip to content

Build and Release

Build and Release #15

Workflow file for this run

name: Build and Release
on:
release:
types: [created]
permissions:
contents: write
jobs:
build-and-upload:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v5
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Install dependencies and pyinstaller
run: |
uv sync --all-groups
- name: Get version
id: get_version
run: |
VERSION=$(uv tree --depth 0 | grep -oP '(?<=v)\d+\.\d+\.\d+' | head -1)
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Build with PyInstaller
run: |
uv run pyinstaller qq.spec
- name: Add VERSION file to package directory
run: |
echo "${{ steps.get_version.outputs.version }}" > dist/qq/VERSION
- name: Update version in installation scripts
run: |
VERSION="${{ steps.get_version.outputs.version }}"
for script in scripts/installation_scripts/*; do
sed -i "s/__VERSION__/$VERSION/g" "$script"
done
- name: Create tarball
run: |
cd dist
tar -czf ../qq-release.tar.gz qq/
cd ..
- name: Upload release assets
run: |
# upload the package
gh release upload ${{ github.event.release.tag_name }} qq-release.tar.gz
# upload installation scripts
gh release upload ${{ github.event.release.tag_name }} scripts/installation_scripts/*
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}