mirror of
https://github.com/AsamK/signal-cli
synced 2025-09-02 04:20:38 +00:00
89 lines
No EOL
2.4 KiB
YAML
89 lines
No EOL
2.4 KiB
YAML
name: signal-cli CI
|
|
|
|
on: [ push, pull_request, workflow_call ]
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
java: [ '17', '19' ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up JDK
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: ${{ matrix.java }}
|
|
cache: 'gradle'
|
|
- name: Build with Gradle
|
|
run: ./gradlew --no-daemon build
|
|
- name: Compress archive
|
|
run: gzip -n -9 build/distributions/signal-cli-*.tar
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: signal-cli-archive-${{ matrix.java }}
|
|
path: build/distributions/signal-cli-*.tar.gz
|
|
|
|
build-graalvm:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: graalvm/setup-graalvm@v1
|
|
with:
|
|
version: 'latest'
|
|
java-version: '17'
|
|
cache: 'gradle'
|
|
components: 'native-image'
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Build with Gradle
|
|
run: ./gradlew --no-daemon nativeCompile
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: signal-cli-native
|
|
path: build/native/nativeCompile/signal-cli
|
|
|
|
build-docker:
|
|
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Set up JDK
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: '17'
|
|
cache: 'gradle'
|
|
|
|
- name: Build with Gradle
|
|
run: ./gradlew --no-daemon build
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Get current version from gradle
|
|
run: APP_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')
|
|
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: ${{ secrets.DOCKERHUB_USERNAME }}/signal-cli:latest, ${{ secrets.DOCKERHUB_USERNAME }}/signal-cli:${{ env.APP_VERSION }} |