Skip to content

Add BLAKE3 support with .bk3 checksum format (256/512/1024/2048-bit XOF) #284

Add BLAKE3 support with .bk3 checksum format (256/512/1024/2048-bit XOF)

Add BLAKE3 support with .bk3 checksum format (256/512/1024/2048-bit XOF) #284

# This is a basic workflow to help you get started with Actions
name: CI python3 FreeBSD
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ python3 ]
pull_request:
branches: [ python3 ]
workflow_dispatch:
schedule:
- cron: '37 15 * * 5'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
strategy:
matrix:
freebsd-release: [ '13.4', '13.5', '14.2', '14.3', '15.0' ]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Test in FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: ${{ matrix.freebsd-release }}
usesh: true
prepare: pkg install -y python3 devel/py-pip coreutils cksfv b3sum git-tiny rust
run: |
set -ex
pwd
ls -lah
whoami
env
freebsd-version
ln -s /usr/local/bin/python3 /usr/local/bin/python
ln -s /usr/local/bin/gmd5sum /usr/local/bin/md5sum
ln -s /usr/local/bin/gsha1sum /usr/local/bin/sha1sum
ln -s /usr/local/bin/gsha224sum /usr/local/bin/sha224sum
ln -s /usr/local/bin/gsha256sum /usr/local/bin/sha256sum
ln -s /usr/local/bin/gsha384sum /usr/local/bin/sha384sum
ln -s /usr/local/bin/gsha512sum /usr/local/bin/sha512sum
pw groupadd docker -g 127
pw useradd runner -u 1001 -g docker
# Check syntax by compiling code
python -W error -bb -m compileall -f .
# Run unit tests
su runner -c 'python -W error -bb test/test.py --unit --exit-early'
# Run integration tests (internal)
su runner -c 'ulimit -n; ulimit -n 4096; python -W error -bb test/test.py -i --exit-early'
# Run integration tests (external process)
su runner -c 'ulimit -n; ulimit -n 4096; test/test.py -e --exit-early'
# Install optional dependencies
# pillow dependencies
pkg install -y jpeg-turbo tiff webp openjpeg libavif
pip install .[full]
pip list
# Run unit tests (with optional dependencies)
su runner -c 'python -W error -bb test/test.py --unit --exit-early'
# Run integration tests (internal, with optional dependencies)
su runner -c 'ulimit -n; ulimit -n 4096; python -W error -bb test/test.py -i --exit-early'
# Run integration tests (external process, with optional dependencies)
su runner -c 'ulimit -n; ulimit -n 4096; test/test.py -e --exit-early'
# Install build dependencies
# Fallback hack required for pip < 25.1 (since newer pip is not available for Python < 3.9)
pip install --group build || pip install build
pip list
# Build
python -m build