mirror of
https://github.com/AsamK/signal-cli
synced 2025-09-02 12:30:39 +00:00
Native Image CI job
Currently no Windows support. GraalVM in version 22.1.0 has a bug on windows. See https://github.com/oracle/graal/issues/4502
This commit is contained in:
parent
1757e939e1
commit
3181ebfd13
1 changed files with 108 additions and 0 deletions
108
.github/workflows/native-image.yml
vendored
Normal file
108
.github/workflows/native-image.yml
vendored
Normal file
|
@ -0,0 +1,108 @@
|
|||
name: Build Native Image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
native-image:
|
||||
env:
|
||||
LIBSIGNAL_VERSION: 0.17.0
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job_name:
|
||||
- linux-amd64
|
||||
- macos-amd64
|
||||
#- windows-amd64
|
||||
|
||||
include:
|
||||
- job_name: linux-amd64
|
||||
os: ubuntu-latest
|
||||
|
||||
- job_name: macos-amd64
|
||||
os: macOS-latest
|
||||
|
||||
#- job_name: windows-amd64
|
||||
# os: windows-latest
|
||||
|
||||
name: ${{ matrix.job_name }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
# git checkout
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Add libs
|
||||
- name: Add lib on *nix x86
|
||||
run: |
|
||||
curl -Lo /tmp/libsignal_jni.so.tar.gz "https://github.com/exquo/signal-libs-build/releases/download/libsignal-client_v${LIBSIGNAL_VERSION}/libsignal_jni.so-v${LIBSIGNAL_VERSION}-x86_64-unknown-linux-gnu.tar.gz"
|
||||
tar -C lib/src/main/resources/ -xzf "/tmp/libsignal_jni.so.tar.gz"
|
||||
if: success() && matrix.os == 'ubuntu-latest'
|
||||
|
||||
- name: Add lib on Mac x86
|
||||
run: |
|
||||
curl -Lo /tmp/libsignal_jni.dylib.tar.gz "https://github.com/exquo/signal-libs-build/releases/download/libsignal-client_v${LIBSIGNAL_VERSION}/libsignal_jni.dylib-v${LIBSIGNAL_VERSION}-x86_64-apple-darwin.tar.gz"
|
||||
tar -C lib/src/main/resources/ -xzf "/tmp/libsignal_jni.dylib.tar.gz"
|
||||
if: success() && matrix.os == 'macOS-latest'
|
||||
|
||||
#- name: Add lib on Windows
|
||||
# run: Invoke-WebRequest -Uri https://github.com/signalapp/libsignal/releases/latest/download/signal_jni.dll -OutFile lib/src/main/resources/signal_jni.dll
|
||||
# if: success() && matrix.os == 'windows-latest'
|
||||
|
||||
# install build dependencies (windows only)
|
||||
#- name: Configure Developer Command Prompt for Microsoft Visual C++ on Windows
|
||||
# uses: ilammy/msvc-dev-cmd@v1.10.0
|
||||
# if: matrix.os == 'windows-latest'
|
||||
|
||||
#- name: Configure MSBuild on Windows
|
||||
# uses: microsoft/setup-msbuild@v1
|
||||
# if: matrix.os == 'windows-latest'
|
||||
|
||||
# set up graalvm
|
||||
- name: Set up GraalVM environment
|
||||
uses: ayltai/setup-graalvm@v1
|
||||
with:
|
||||
java-version: 17
|
||||
graalvm-version: 22.1.0
|
||||
native-image: true
|
||||
|
||||
# build native image
|
||||
- name: Build Native Image
|
||||
run: ./gradlew nativeCompile
|
||||
|
||||
# package native image
|
||||
- name: Build Package on *nix x86
|
||||
run: |
|
||||
VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')
|
||||
mkdir -p signal-cli-${VERSION}-${{ matrix.job_name }}/
|
||||
mv ./build/native/nativeCompile/signal-cli signal-cli-${VERSION}-${{ matrix.job_name }}
|
||||
zip -r signal-cli-${VERSION}-${{ matrix.job_name }}.zip ./signal-cli-${VERSION}-${{ matrix.job_name }}
|
||||
if: success() && matrix.os == 'ubuntu-latest'
|
||||
|
||||
- name: Build Package on Mac x86
|
||||
run: |
|
||||
VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')
|
||||
mkdir -p signal-cli-${VERSION}-${{ matrix.job_name }}/
|
||||
mv ./build/native/nativeCompile/signal-cli signal-cli-${VERSION}-${{ matrix.job_name }}
|
||||
zip -r signal-cli-${VERSION}-${{ matrix.job_name }}.zip ./signal-cli-${VERSION}-${{ matrix.job_name }}
|
||||
if: success() && matrix.os == 'macOS-latest'
|
||||
|
||||
#- name: Build Package on Windows
|
||||
# run: |
|
||||
# $VERSION = .\gradlew.bat properties -q | Select-String -Pattern 'version:' | Select-Object -First 1
|
||||
# New-Item "./signal-cli-${VERSION}-${{ matrix.job_name }}/" -ItemType Directory -ea 0
|
||||
# Move-Item -Path ./build/native/nativeCompile/signal-cli.exe -Destination "./signal-cli-${VERSION}-${{ matrix.job_name }}"
|
||||
# Compress-Archive -Path "./signal-cli-${VERSION}-${{ matrix.job_name }}" -Update -DestinationPath ./signal-cli-${VERSION}-${{ matrix.job_name }}.zip
|
||||
# if: success() && matrix.os == 'windows-latest'
|
||||
|
||||
# publish artifact
|
||||
- name: Publish artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.job_name }}
|
||||
path: signal-cli-*-${{ matrix.job_name }}.zip
|
Loading…
Add table
Add a link
Reference in a new issue