Skip to content

upgraded abstract http plugin to v0.3 (interface) of the abstract http client package #97

upgraded abstract http plugin to v0.3 (interface) of the abstract http client package

upgraded abstract http plugin to v0.3 (interface) of the abstract http client package #97

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
paths:
- src/**
- Cargo.*
- .github/workflows/rust.yml
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
BUILD_TYPE: release
SHARED_LIBRARY_NAME: lv_reqwest
jobs:
build:
runs-on: ${{ matrix.runs-on }}
container: ${{ matrix.container }}
strategy:
fail-fast: false
matrix:
include:
# - target: x86_64-unknown-linux-musl
- target: x86_64-unknown-linux-gnu
runs-on: ubuntu-latest
shared-lib-extension: so
bitness: 64
- target: x86_64-pc-windows-msvc
runs-on: windows-latest
container: ''
shared-lib-extension: dll
bitness: 64
- target: i686-pc-windows-msvc
runs-on: windows-latest
shared-lib-extension: dll
bitness: 32
container: ''
# - target: armv7-unknown-linux-gnueabihf
# runs-on: ubuntu-latest
# container: ''
# shared-lib-extension: so
# bitness: 64
- target: x86_64-apple-darwin
arch: x86_64
runs-on: macos-latest
container: ''
shared-lib-extension: dylib
bitness: 64
- target: aarch64-apple-darwin
arch: aarch64
runs-on: macos-latest
container: ''
shared-lib-extension: dylib
bitness: 64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies for Linux
if: ${{ runner.os == 'Linux' || runner.os == 'linux' }}
run: |
sudo apt-get update -y
sudo apt-get install -y pkg-config libssl-dev
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build Linux
if: ${{ runner.os == 'Linux' }}
run: |
pip3 install ziglang
cargo install --locked cargo-zigbuild
rustup target add ${{ matrix.target }}
cargo zigbuild --target=${{ matrix.target }} --verbose --${{ env.BUILD_TYPE }}
- name: Build Non-Linux
if: ${{ runner.os != 'Linux' }}
run: |
rustup target add ${{ matrix.target }}
cargo build --target=${{ matrix.target }} --verbose --${{ env.BUILD_TYPE }}
- name: Rename shared library
shell: bash
run: |
cd target/${{ matrix.target }}/${{ env.BUILD_TYPE }}
ls -la
# Only rename libreqwest_dll.so/dll/dylib to avoid trying to rename already renamed files
if [ -f "libreqwest_dll.${{ matrix.shared-lib-extension }}" ]; then
mv "libreqwest_dll.${{ matrix.shared-lib-extension }}" ${{ env.SHARED_LIBRARY_NAME }}_${{ matrix.bitness }}.${{ matrix.shared-lib-extension }}
fi
- name: Bundle MacOS Framework
if: ${{ matrix.runs-on == 'macos-latest' }}
run: |
BUILD_TYPE=${{ env.BUILD_TYPE }}
SHARED_LIBARY_NAME=${{ env.SHARED_LIBRARY_NAME }}_${{ matrix.bitness }}.${{ matrix.shared-lib-extension }}
BUILD_OUTPUT_DIR=target/${{ matrix.target }}/${{ env.BUILD_TYPE }}
FRAMEWORK_NAME=${{ env.SHARED_LIBRARY_NAME }}_${{ matrix.bitness }}
pushd $BUILD_OUTPUT_DIR
rm -rf $FRAMEWORK_NAME.framework
mkdir -p $FRAMEWORK_NAME.framework/Versions/A
cp $SHARED_LIBARY_NAME $FRAMEWORK_NAME.framework/Versions/A/$FRAMEWORK_NAME
chmod ugo+rx $FRAMEWORK_NAME.framework/Versions/A/$FRAMEWORK_NAME
ln -s ./A ./$FRAMEWORK_NAME.framework/Versions/Current
ln -s ./Versions/A/$FRAMEWORK_NAME ./$FRAMEWORK_NAME.framework
rm -rf $FRAMEWORK_NAME.framework.zip
zip -r $FRAMEWORK_NAME.framework.zip $FRAMEWORK_NAME.framework
popd
- name: Check formatting
run: cargo fmt -- --check
- name: Run clippy
run: cargo clippy
- name: Run tests
run: cargo test --verbose
- name: Upload artifact
if: ${{ matrix.runs-on != 'macos-latest' }}
uses: actions/upload-artifact@v4
with:
name: shared-library-${{ matrix.target }}
if-no-files-found: error
path: |
target/${{ matrix.target }}/${{ env.BUILD_TYPE }}/*.${{ matrix.shared-lib-extension }}
- name: Upload MacOS Framework artifact
if: ${{ matrix.runs-on == 'macos-latest' }}
uses: actions/upload-artifact@v4
with:
name: shared-library-${{ matrix.target }}
if-no-files-found: error
path: |
target/${{ matrix.target }}/${{ env.BUILD_TYPE }}/*.framework.zip