Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dep updates 2023-10-10, add linux-aarch64 CLI build #98

Merged
merged 27 commits into from
Sep 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e28a221
Update deno deps to 1.36.4
jonmmease Sep 10, 2023
e6dc9da
serde dep updates
jonmmease Sep 10, 2023
97d7c4d
update tokio, drop multi-thread feature flag
jonmmease Sep 10, 2023
622b01a
update reqwest, drop blocking feature flag
jonmmease Sep 10, 2023
2ae6531
minor updates
jonmmease Sep 10, 2023
474701f
bundle licenses
jonmmease Sep 10, 2023
752fc69
try installing protoc
jonmmease Sep 10, 2023
294198d
Add protobuf-src feature flag to build on linux and with maturin
jonmmease Sep 10, 2023
40342e7
Revert "Add protobuf-src feature flag to build on linux and with matu…
jonmmease Sep 10, 2023
c0a0d77
install protoc
jonmmease Sep 10, 2023
142da1a
sudo and update
jonmmease Sep 10, 2023
05216f3
GITHUB token
jonmmease Sep 10, 2023
07cf5b2
no sudo in manylinux container?
jonmmease Sep 10, 2023
525aac2
try protoc from github release
jonmmease Sep 10, 2023
69b06d8
Don't use cross compilation for linux x86
jonmmease Sep 10, 2023
55057d1
try add build-cli-linux-aarch64
jonmmease Sep 10, 2023
bd728a5
Build CLI inside manylinux2014 docker container
jonmmease Sep 10, 2023
84d3c7e
cd ..
jonmmease Sep 10, 2023
2d2f0cd
Move zip to rename task
jonmmease Sep 10, 2023
8823709
Build CLI in separate action
jonmmease Sep 11, 2023
cd89385
sudo?
jonmmease Sep 11, 2023
de48635
zip it
jonmmease Sep 11, 2023
dadfbc8
another try to cross compile
jonmmease Sep 11, 2023
eca0d37
Try build in docker manually
jonmmease Sep 11, 2023
064ddc8
cache, zip
jonmmease Sep 11, 2023
974e126
Re-enable release tests
jonmmease Sep 11, 2023
50049eb
Re-enable CI tests, only run Release tests on main
jonmmease Sep 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: True
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check cargo fmt compliance
run: cargo fmt --all -- --check
- name: Check no rustc warnings
Expand Down Expand Up @@ -100,6 +104,10 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: True
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install fonts on Linux
if: runner.os == 'Linux'
run: |
Expand Down Expand Up @@ -138,6 +146,10 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: True
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install fonts on Linux
if: runner.os == 'Linux'
run: |
Expand Down
101 changes: 86 additions & 15 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,85 @@ on:
- main

jobs:
build-cli-linux:
runs-on: ubuntu-latest
strategy:
matrix:
options:
- [ "x86_64-unknown-linux-gnu", "linux-64"]
build-cli-linux-x86:
runs-on: ubuntu-20.04
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
- name: Install protoc
run: |
rustup target add ${{ matrix.options[0] }}
sudo apt-get update
sudo apt-get install protobuf-compiler
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: -p vl-convert --release --target ${{ matrix.options[0] }}
args: -p vl-convert --release
- name: Move executable to bin directory
run: |
mkdir -p bin
cp target/${{ matrix.options[0] }}/release/vl-convert bin/
cp target/release/vl-convert bin/
cp LICENSE bin/
cp thirdparty_* bin/
zip -r vl-convert_${{ matrix.options[1] }}.zip bin/
zip -r vl-convert_linux-64.zip bin/
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_${{ matrix.options[1] }}.zip
vl-convert_linux-64.zip

build-cli-linux-aarch64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: arm64
- name: Cache
uses: actions/cache@v3
with:
key: build-cli-linux-aarch64-${{ hashFiles('Cargo.lock') }}
path: |
cargo-arm64
target-arm64
- name: Build in Docker
run: |
docker run \
--rm \
-v $(pwd):/workspace \
-w /workspace \
--platform linux/arm64 \
--env CARGO_TARGET_DIR=/workspace/target-arm64 \
--env CARGO_HOME=/workspace/cargo-arm64 \
rust:1.72-slim-bullseye \
bash -c "\
uname -a && \
apt update -y && \
apt install cmake curl zip unzip -y && \
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v24.0/protoc-24.0-linux-aarch_64.zip && \
unzip protoc-24.0-linux-aarch_64.zip -d /usr/ && \
which protoc && \
cargo build --release -p vl-convert && \
rm -rf bin/ && \
rm -rf vl-convert_linux-aarch64.zip && \
mkdir -p bin/ && \
cp target-arm64/release/vl-convert bin/ && \
cp LICENSE bin/ && \
cp thirdparty_* bin/ && \
zip -r vl-convert_linux-aarch64.zip bin/
"
- name: Upload executable
uses: actions/upload-artifact@v2
with:
name: vl-convert
path: |
vl-convert_linux-aarch64.zip

build-cli-win-64:
runs-on: windows-2022
Expand All @@ -51,6 +95,10 @@ jobs:
with:
toolchain: stable
override: true
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
Expand Down Expand Up @@ -83,6 +131,10 @@ jobs:
with:
toolchain: stable
override: true
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build vl-convert
uses: actions-rs/cargo@v1
with:
Expand All @@ -103,7 +155,7 @@ jobs:
vl-convert_osx-64.zip

build-wheels-linux-x86_64:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
strategy:
matrix:
arch:
Expand All @@ -116,14 +168,18 @@ jobs:
target: ${{ matrix.arch }}
command: build
args: --release -m vl-convert-python/Cargo.toml --sdist -o dist --strip
before-script-linux: |
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
curl -LO $PB_REL/download/v24.0/protoc-24.0-linux-x86_64.zip
unzip protoc-24.0-linux-x86_64.zip -d /usr/
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist

build-wheels-linux-aarch64:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Setup QEMU
Expand All @@ -135,6 +191,13 @@ jobs:
target: aarch64-unknown-linux-gnu
command: build
args: --release -m vl-convert-python/Cargo.toml --sdist -o dist --strip
before-script-linux: |
# Install protoc
echo $PATH
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
curl -LO $PB_REL/download/v24.0/protoc-24.0-linux-aarch_64.zip
unzip protoc-24.0-linux-aarch_64.zip -d /usr/

# 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
Expand All @@ -153,6 +216,10 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: messense/maturin-action@v1
with:
command: build
Expand All @@ -167,6 +234,10 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Intel wheels
uses: messense/maturin-action@v1
with:
Expand Down
Loading