Skip to content

Update Deno, build aarch64 wheels with QEMU #89

Update Deno, build aarch64 wheels with QEMU

Update Deno, build aarch64 wheels with QEMU #89

Workflow file for this run

name: Release
on:
pull_request:
push:
branches:
- main
jobs:
build-cli-linux:
runs-on: ubuntu-latest
strategy:
matrix:
options:
- [ "x86_64-unknown-linux-gnu", "linux-64"]
- [ "aarch64-unknown-linux-gnu", "linux-aarch64"]
steps:
- uses: actions/checkout@v2
- name: Install latest stable Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Download architecture toolchain
run: |
rustup target add ${{ matrix.options[0] }}
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: -p vl-convert --release --target ${{ matrix.options[0] }}
- name: Move executable to bin directory
run: |
mkdir -p bin
cp target/${{ matrix.options[0] }}/release/vl-convert bin/
cp LICENSE bin/
cp thirdparty_* bin/
zip -r vl-convert_${{ matrix.options[1] }}.zip bin/
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_${{ matrix.options[1] }}.zip
build-cli-win-64:
runs-on: windows-2022
steps:
- uses: actions/checkout@v2
- name: Install latest stable Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
command: build
args: -p vl-convert --release
- name: Move executable to bin directory
run: |
New-Item -Path "artifacts\bin" -ItemType Directory
Copy-Item "target\release\vl-convert.exe" -Destination "artifacts\bin"
Copy-Item "LICENSE" -Destination "artifacts\bin"
Copy-Item "thirdparty_*" -Destination "artifacts\bin"
- name: zip executable
uses: papeloto/action-zip@v1
with:
files: artifacts/
dest: vl-convert_win-64.zip
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_win-64.zip
build-cli-osx-64:
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- name: Install latest stable Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
command: build
args: -p vl-convert --release
- name: Move executable to bin directory
run: |
mkdir -p bin
cp target/release/vl-convert bin/
cp LICENSE bin/
cp thirdparty_* bin/
zip -r vl-convert_osx-64.zip bin/
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_osx-64.zip
build-cli-osx-arm64:
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- name: Install latest stable Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Download Apple Silicon toolchain
run: |
rustup target add aarch64-apple-darwin
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
command: build
args: -p vl-convert --release --target aarch64-apple-darwin
- name: Move executable to bin directory
run: |
mkdir -p bin
cp target/aarch64-apple-darwin/release/vl-convert bin/
cp LICENSE bin/
cp thirdparty_* bin/
zip -r vl-convert_osx-arm64.zip bin/
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_osx-arm64.zip
build-wheels-linux-x86_64:
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- "x86_64-unknown-linux-gnu"
steps:
- uses: actions/checkout@v3
- uses: messense/maturin-action@v1
with:
manylinux: auto
target: ${{ matrix.arch }}
command: build
args: --release -m vl-convert-python/Cargo.toml --sdist -o dist -i python3.11 -i python3.10 -i python3.9 -i python3.8 -i python3.7 --strip
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
build-wheels-linux-aarch64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup QEMU
uses: docker/setup-qemu-action@v1
- uses: messense/maturin-action@v1
with:
manylinux: auto
container: quay.io/pypa/manylinux2014_aarch64
target: aarch64-unknown-linux-gnu
command: build
args: --release -m vl-convert-python/Cargo.toml --sdist -o dist -i python3.11 -i python3.10 -i python3.9 -i python3.8 -i python3.7 --strip
# Not sure why the compiled wheels end up with x86_64 in the file name,
# they are aarch64 and work properly after being renamed.
- name: Rename files
run: |
sudo apt-get update
sudo apt-get install rename
ls dist/
rename 's/x86_64/aarch64/g' dist/vl_convert_python-*.whl
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
build-wheels-win-64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: messense/maturin-action@v1
with:
command: build
args: --release -m vl-convert-python/Cargo.toml -o dist -i python3.11 -i python3.10 -i python3.9 -i python3.8 -i python3.7 --strip
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
build-wheels-osx-64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Build Intel wheels
uses: messense/maturin-action@v1
with:
command: build
args: --release -m vl-convert-python/Cargo.toml -o dist -i python3.11 -i python3.10 -i python3.9 -i python3.8 -i python3.7 --strip
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
build-wheels-osx-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Download Apple Silicon toolchain
run: |
rustup target add aarch64-apple-darwin
- name: Build Apple Silicon wheels
uses: messense/maturin-action@v1
with:
command: build
args: --release -m vl-convert-python/Cargo.toml -o dist --target aarch64-apple-darwin -i python3.11 -i python3.10 -i python3.9 -i python3.8 -i python3.7 --strip
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
publish-pypi:
name: Publish to PyPI
environment: PyPI Upload
runs-on: ubuntu-latest
needs: [ build-wheels-linux-x86_64, build-wheels-linux-aarch64, build-wheels-win-64, build-wheels-osx-64, build-wheels-osx-arm64 ]
steps:
- uses: actions/download-artifact@v2
with:
name: wheels
path: dist/
- name: Publish to PyPI
uses: messense/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing dist/*