libsignal-client/.gitlab-ci.yml

123 lines
3.5 KiB
YAML
Raw Normal View History

2021-10-15 07:26:35 +00:00
stages:
2021-10-24 19:47:40 +00:00
- native library
2021-10-15 07:26:35 +00:00
- bindings
variables:
2022-11-30 03:26:03 +00:00
libsignal_version: "v0.21.1"
2021-10-15 07:26:35 +00:00
GRADLE_OPTS: -Dorg.gradle.daemon=false
.multitarget:
parallel:
matrix:
- TARGET:
- aarch64-unknown-linux-gnu
# - aarch64-unknown-linux-musl
2021-10-15 07:26:35 +00:00
- arm-unknown-linux-gnueabi
- arm-unknown-linux-gnueabihf
# - arm-unknown-linux-musleabihf
2021-10-15 07:26:35 +00:00
- armv7-unknown-linux-gnueabihf
# - armv7-unknown-linux-musleabihf
2021-10-15 07:26:35 +00:00
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
2021-11-16 18:24:58 +00:00
rules:
- when: on_success
2021-10-15 07:26:35 +00:00
2022-09-13 22:17:26 +00:00
.multitarget-darwin:
parallel:
matrix:
- TARGET:
- x86_64-apple-darwin
- aarch64-apple-darwin
2021-10-15 07:26:35 +00:00
compile:
extends: .multitarget
2022-10-27 08:34:10 +00:00
image: rust:slim-bullseye
2021-10-24 19:47:40 +00:00
stage: native library
2021-10-15 07:26:35 +00:00
before_script:
- ./prepare-env.sh
script:
- git clone https://github.com/signalapp/libsignal-client
- cd libsignal-client && git checkout "$libsignal_version"
- rustup target add "${TARGET}"
2022-12-20 05:50:37 +00:00
- if [[ -d ../target ]]; then mv ../target target; fi
- RUSTFLAGS="$(../rustflags.sh)" cargo build -p libsignal-jni --target "${TARGET}" --release --verbose
2021-10-15 07:26:35 +00:00
- cp -v target/${TARGET}/release/libsignal_jni.so ../libsignal_jni-${TARGET}.so
2022-12-20 05:50:37 +00:00
- cp target/ ../target
2022-12-20 06:22:08 +00:00
# variables:
# CC: clang-13
# CXX: clang++-13
# CPP: clang-cpp-13
# AR: llvm-ar-13
# STRIP: llvm-strip-13
# RANLIB: llvm-ranlib-13
# AS: llvm-as-13
# OBJDUMP: llvm-objdump-13
# OBJCOPY: llvm-objcopy-13
# READELF: llvm-readelf-13
# NM: llvm-nm-13
# CC_LD: lld-13
# CXX_LD: lld-13
# LD: lld-13
2022-12-20 05:50:37 +00:00
cache:
paths:
- target/
2022-12-20 03:30:51 +00:00
2021-10-15 07:26:35 +00:00
artifacts:
paths:
- libsignal_jni-$TARGET.so
2022-09-13 22:17:26 +00:00
compile darwin:
extends: .multitarget-darwin
stage: native library
tags: [darwin-builder]
script:
- git clone https://github.com/signalapp/libsignal-client
- cd libsignal-client && git checkout "$libsignal_version"
2022-10-27 03:36:11 +00:00
- rustup target add "${TARGET}"
2022-09-13 22:17:26 +00:00
- RUSTFLAGS='-C link-arg=-s' cargo build -p libsignal-jni --target "${TARGET}" --release --verbose
- cp -v target/${TARGET}/release/libsignal_jni.dylib ../libsignal_jni-${TARGET}.dylib
artifacts:
paths:
2022-09-13 22:17:26 +00:00
- libsignal_jni-$TARGET.dylib
rules:
- if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
when: on_success
- when: manual
allow_failure: true
2021-10-15 07:26:35 +00:00
jar:
extends: .multitarget
image: gradle:7
2021-10-15 07:26:35 +00:00
stage: bindings
2021-10-15 07:28:01 +00:00
needs: ["compile"]
2021-10-15 07:26:35 +00:00
script:
- git clone https://github.com/signalapp/libsignal-client
- cd libsignal-client && git checkout "$libsignal_version"
- git config user.email nobody@signald.org && git config user.name signald
- git am ../libsignal.patch
2022-03-22 03:14:15 +00:00
- mkdir -p java/shared/resources
- cp "../libsignal_jni-${TARGET}.so" java/shared/resources/libsignal_jni.so
2021-10-15 07:26:35 +00:00
- cd java
- gradle assemble publish
2022-09-13 22:17:26 +00:00
jar darwin:
extends: .multitarget-darwin
image: gradle:7
2021-10-15 07:26:35 +00:00
stage: bindings
tags: [darwin-builder]
2022-09-13 22:17:26 +00:00
needs: ["compile darwin"]
2021-10-15 07:26:35 +00:00
script:
- git clone https://github.com/signalapp/libsignal-client
- cd libsignal-client && git checkout "$libsignal_version"
- git config user.email nobody@signald.org && git config user.name signald
- git am ../libsignal.patch
2022-03-22 03:14:15 +00:00
- mkdir -p java/shared/resources
- cp "../libsignal_jni-${TARGET}.dylib" java/shared/resources/libsignal_jni.dylib
2021-10-15 07:26:35 +00:00
- cd java
- gradle assemble publish
2021-11-15 18:24:13 +00:00
rules:
- if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
when: on_success
- when: manual
allow_failure: true