Skip to content

Brotli update

Brotli update #129

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
release:
types: [ published ]
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: taiki-e/install-action@v2
with: { tool: just }
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
- run: just test
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
msrv:
name: Test MSRV
runs-on: ubuntu-latest
steps:
- uses: taiki-e/install-action@v2
with: { tool: just }
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
- name: Read crate metadata
id: metadata
run: echo "rust-version=$(sed -ne 's/rust-version *= *\"\(.*\)\"/\1/p' Cargo.toml)" >> $GITHUB_OUTPUT
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ steps.metadata.outputs.rust-version }}
components: clippy,rustfmt
- run: just test
build:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
file: libsqlite_compressions.dylib
download: 'https://www.sqlite.org/2023/sqlite-tools-osx-x64-3440200.zip'
os: macOS-latest
sqlite3: ./sqlite3
- target: x86_64-apple-darwin
file: libsqlite_compressions.dylib
download: 'https://www.sqlite.org/2023/sqlite-tools-osx-x64-3440200.zip'
os: macOS-latest
sqlite3: ./sqlite3
- target: x86_64-pc-windows-msvc
file: sqlite_compressions.dll
download: 'https://www.sqlite.org/2023/sqlite-tools-win-x64-3440200.zip'
os: windows-latest
sqlite3: ./sqlite3.exe
- target: x86_64-unknown-linux-gnu
file: libsqlite_compressions.so
os: ubuntu-latest
sqlite3: sqlite3
steps:
- uses: taiki-e/install-action@v2
with: { tool: just }
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
- name: Download SQLite
if: matrix.download
uses: carlosperate/download-file-action@v2
with:
file-url: '${{ matrix.download }}'
file-name: sqlite.zip
location: ./tmp-downloads
- name: Install SQLite
if: matrix.download
run: |
cd tmp-downloads
if [[ "${{ runner.os }}" == "Windows" ]]; then
7z x sqlite.zip
else
unzip sqlite.zip
chmod +x ${{ matrix.sqlite3 }}
fi
mv ${{ matrix.sqlite3 }} ../
cd ..
rm -rf ./tmp-downloads
- name: SQLite Info
run: |
which ${{ matrix.sqlite3 }}
${{ matrix.sqlite3 }} --version
${{ matrix.sqlite3 }} <<EOF
.help
EOF
- name: Build
if: matrix.cross != 'true'
run: |
set -x
rustup target add "${{ matrix.target }}"
export RUSTFLAGS='-C strip=debuginfo'
just build-ext --release --target ${{ matrix.target }}
mkdir -p target/files
- name: Test ${{ matrix.target }} extension
if: matrix.target != 'aarch64-apple-darwin'
env:
EXTENSION_FILE: target/${{ matrix.target }}/release/examples/${{ matrix.file }}
SQLITE3_BIN: ${{ matrix.sqlite3 }}
run: ./tests/test-ext.sh
# - name: Test ${{ matrix.target }} extension
# if: matrix.target != 'aarch64-apple-darwin'
# run: just sqlite3=${{ matrix.sqlite3 }} extension_file=target/${{ matrix.target }}/release/examples/${{ matrix.file }} test-ext
- name: Package
run: |
pushd target/${{ matrix.target }}/release/examples
if [[ "${{ runner.os }}" == "Windows" ]]; then
7z a ../../../files/sqlite-compressions-${{ matrix.target }}.zip ${{ matrix.file }}
else
tar czvf ../../../files/sqlite-compressions-${{ matrix.target }}.tar.gz ${{ matrix.file }}
fi
popd
ls -lR target/files
- name: Publish
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
draft: true
files: 'target/files/*'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
cross-build:
name: Cross-build
runs-on: ubuntu-latest
steps:
- uses: taiki-e/install-action@v2
with:
tool: just,cross
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
- run: just cross-build-ext-aarch64
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- run: just cross-test-ext-aarch64
- name: Package
run: |
mkdir -p target/files
tar czvf target/files/sqlite-compressions-aarch64-unknown-linux-gnu.tar.gz -C ./target/aarch64-unknown-linux-gnu/release/examples libsqlite_compressions.so
- run: ls -lR target/files
- name: Publish
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
draft: true
files: 'target/files/*'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}