Skip to content

release

release #27

Workflow file for this run

# This workflow will create ant test a new release
name: release
on:
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g., 0.1.0)'
required: true
notes:
description: 'Release notes (e.g., changelog)'
required: false
default: 'Changelog: \n- Added feature 1\n- Added feature 2\n- Fixed issue 2'
push:
tags:
- 'v*.*.*'
jobs:
min_linux:
name: linux with min supported deps
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.7
uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Install dependencies
run: |
make install_deps
sudo apt update && sudo apt install \
git \
cmake \
gcc-multilib \
g++-multilib \
gstreamer1.0-tools \
gstreamer1.0-libav \
gstreamer1.0-plugins-bad \
ffmpeg \
vpx-tools \
wget \
unzip
- name: Check
run: |
make check
- name: Test Build the wheel
run: |
pip wheel .
- name: Build all reference decoders
run: |
make all_reference_decoders
- name: Clean up
run: |
make clean
linux:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Install dependencies
run: |
make install_deps
sudo apt update && sudo apt install \
git \
cmake \
gcc-multilib \
g++-multilib \
gstreamer1.0-tools \
gstreamer1.0-libav \
gstreamer1.0-plugins-bad \
ffmpeg \
vpx-tools \
wget \
unzip
- name: Check
run: |
make check
- name: Test Build the wheel
run: |
pip wheel .
- name: Build all reference decoders
run: |
make all_reference_decoders
- name: Clean up
run: |
make clean
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.7
uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Install dependencies
run: |
make install_deps
- name: Check
run: |
make check
- name: Test Build the wheel
run: |
pip wheel .
create_release:
name: Create Release
runs-on: ubuntu-20.04
needs:
- min_linux
- linux
- windows
steps:
- uses: actions/checkout@v4
- name: Create Git Tag
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git tag v${{ github.event.inputs.version }}
git push origin v${{ github.event.inputs.version }}
- name: Create temporary notes file
run: |
echo -e "${{ github.event.inputs.notes }}" > notes.txt
- name: Create GitHub Release
run: |
VERSION=${{ github.event.inputs.version }}
git archive --format=zip HEAD
gh release create v$VERSION \
--title "Release v$VERSION" \
--notes "$(cat notes.txt)"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean up notes file
run: rm notes.txt
continue-on-error: true