Skip to content

check windows builds still work with new wrapper #61

check windows builds still work with new wrapper

check windows builds still work with new wrapper #61

Workflow file for this run

name: publish
on:
push:
tags:
- "v*"
- "prebuild-test.*"
jobs:
prebuild:
name: Prebuild for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
artifact_name: crsqlite.so
asset_name: crsqlite-linux-x86_64.so
- os: windows-latest
artifact_name: crsqlite.dll
asset_name: crsqlite-windows-x86_64.dll
- os: macos-latest
artifact_name: crsqlite.dylib
asset_name: crsqlite-darwin-x86_64.dylib
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Load .env file
uses: xom9ikk/dotenv@v2
with:
path: ./
- name: Windows rust toolchain
if: runner.os == 'Windows'
run: |
rm core/rs/bundle_static/rust-toolchain.toml
rustup component add rust-src --toolchain nightly-2023-06-17-x86_64-pc-windows-gnu
rustup default nightly-2023-06-17-x86_64-pc-windows-gnu
- name: Build
run: |
cd core
make loadable
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.ref }}
# we can probably collapse all these into the prebuild job
prebuild-macos-arm:
name: Prebuild for macos arm
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-latest
artifact_name: crsqlite.dylib
asset_name: crsqlite-darwin-aarch64.dylib
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Rust Nightly
run: |
rustup toolchain install nightly-2023-06-17
rustup target add aarch64-apple-darwin --toolchain nightly-2023-06-17
- name: Build MacOS Arm dylib
run: |
cd core
export CI_MAYBE_TARGET="aarch64-apple-darwin" && make loadable
- name: Upload macos dylib to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.ref }}
- name: Build all ios dynamic
run: |
cd core
./all-ios-loadable.sh
- name: Upload framework to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/crsqlite-ios-dylib.xcframework.tar.gz
asset_name: crsqlite-ios-dylib.xcframework.tar.gz
tag: ${{ github.ref }}
prebuild-linux-arm:
name: Prebuild for linux arm
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: crsqlite.so
asset_name: crsqlite-linux-aarch64.so
steps:
- name: Install toolchain
run: |
sudo apt update && sudo apt install -y gcc make gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
- uses: actions/checkout@v3
with:
submodules: true
- name: Rust Nightly
run: |
rustup toolchain install nightly-2023-06-17
rustup target add aarch64-unknown-linux-gnu --toolchain nightly-2023-06-17
- name: Build
run: |
cd core
export CI_MAYBE_TARGET="aarch64-unknown-linux-gnu" && export CI_GCC="aarch64-linux-gnu-gcc" && make loadable
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.ref }}
prebuild-android:
name: Prebuild for android
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: crsqlite.so
asset_name: crsqlite-aarch64-linux-android.so
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Rust Nightly
run: |
rustup toolchain install nightly-2023-06-17
rustup target add aarch64-linux-android --toolchain nightly-2023-06-17
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r25c
local-cache: true
add-to-path: false
- name: Cargo NDK
run: cargo install cargo-ndk
- name: Build
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
run: |
cd core
export ANDROID_TARGET=aarch64-linux-android; make loadable
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.ref }}