]> nmode's Git Repositories - signal-cli/blob - .github/workflows/ci.yml
Use java 24 in CI
[signal-cli] / .github / workflows / ci.yml
1 name: signal-cli CI
2
3 on:
4 push:
5 branches:
6 - '**'
7 pull_request:
8 workflow_call:
9
10 permissions:
11 contents: write # to fetch code (actions/checkout) and submit dependency graph (gradle/gradle-build-action)
12
13 jobs:
14 build:
15
16 runs-on: ubuntu-latest
17 strategy:
18 matrix:
19 java: [ '21', '24' ]
20
21 steps:
22 - uses: actions/checkout@v4
23 - name: Set up JDK
24 uses: actions/setup-java@v3
25 with:
26 distribution: 'zulu'
27 java-version: ${{ matrix.java }}
28 - name: Setup Gradle
29 uses: gradle/actions/setup-gradle@v4
30 with:
31 dependency-graph: generate-and-submit
32 - name: Install asciidoc
33 run: sudo apt update && sudo apt --no-install-recommends install -y asciidoc-base
34 - name: Build with Gradle
35 run: ./gradlew --no-daemon build
36 - name: Build man page
37 run: |
38 cd man
39 make install
40 - name: Add man page to archive
41 run: |
42 version=$(tar tf build/distributions/signal-cli-*.tar | head -n1 | sed 's|signal-cli-\([^/]*\)/.*|\1|')
43 echo $version
44 tar --transform="flags=r;s|man|signal-cli-${version}/man|" -rf build/distributions/signal-cli-${version}.tar man/man{1,5}
45 - name: Compress archive
46 run: gzip -n -9 build/distributions/signal-cli-*.tar
47 - name: Archive production artifacts
48 uses: actions/upload-artifact@v4
49 with:
50 name: signal-cli-archive-${{ matrix.java }}
51 path: build/distributions/signal-cli-*.tar.gz
52
53 build-graalvm:
54
55 runs-on: ubuntu-latest
56
57 steps:
58 - uses: actions/checkout@v4
59 - uses: graalvm/setup-graalvm@v1
60 with:
61 version: 'latest'
62 java-version: '21'
63 cache: 'gradle'
64 github-token: ${{ secrets.GITHUB_TOKEN }}
65 - name: Build with Gradle
66 run: ./gradlew --no-daemon nativeCompile
67 - name: Archive production artifacts
68 uses: actions/upload-artifact@v4
69 with:
70 name: signal-cli-native
71 path: build/native/nativeCompile/signal-cli