Skip to content

automate libzstd.dll bundling in hatch build hook #58

automate libzstd.dll bundling in hatch build hook

automate libzstd.dll bundling in hatch build hook #58

Workflow file for this run

name: CI
on:
push:
branches: [master]
tags: ["v*"]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-26]
llvm: [20, 21, 22]
name: Build os=${{ matrix.os }} llvm=${{ matrix.llvm }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Set up Nix cache
uses: cachix/cachix-action@v17
with:
name: vs-nix-overlay
- name: Build
run: nix build -L .#llvm_${{ matrix.llvm }}.dist
- name: Repair wheel (Linux)
if: runner.os == 'Linux'
run: |
nix shell .#llvm_${{ matrix.llvm }}.dist nixpkgs#uv nixpkgs#patchelf \
--command uvx --with patchelf auditwheel repair --strip result-dist/*.whl -w dist
- name: Repair wheel (macOS)
if: runner.os == 'macOS'
run: |
nix shell .#llvm_${{ matrix.llvm }}.dist nixpkgs#uv \
--command uvx --from delocate delocate-wheel -v -w dist result-dist/*.whl
- name: Upload
uses: actions/upload-artifact@v7.0.1
if: ${{ matrix.llvm == 22 }}
with:
name: wheel-${{ matrix.os }}
path: dist/*.whl
build-windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- uses: msys2/setup-msys2@v2.31.0
with:
msystem: CLANG64
update: true
pacboy: >-
toolchain:p
meson:p
ninja:p
pkgconf:p
libxml2:p
7zip:p
uv:p
- name: Configure and build
env:
MESON_ARGS: >-
--buildtype release
--prefer-static
--default-library=static
-Dcpp_link_args=-static
run: uv build --wheel --verbose
- name: Upload
uses: actions/upload-artifact@v7.0.1
with:
name: wheel-win_amd64
path: |
dist/*.whl
build-sdist:
name: Build sdist
runs-on: ubuntu-24.04
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Set up uv
uses: astral-sh/setup-uv@v8.1.0
- name: Build sdist
run: uv build --sdist --verbose
- name: Upload
uses: actions/upload-artifact@v7.0.1
with:
name: sdist
path: dist/*.tar.gz
publish-pypi:
name: Publish to PyPI
runs-on: ubuntu-24.04
needs: [build, build-windows, build-sdist]
if: startsWith(github.ref, 'refs/tags/')
permissions:
contents: read
id-token: write
environment:
name: pypi
url: https://pypi.org/p/vapoursynth-akarin
steps:
- name: Download distributions
uses: actions/download-artifact@v8.0.1
with:
pattern: "{wheel-*,sdist}"
path: dist
merge-multiple: true
- name: Publish distributions
uses: pypa/gh-action-pypi-publish@release/v1