]> nmode's Git Repositories - signal-cli/blobdiff - .github/workflows/ci.yml
Build rust json-rpc client in CI
[signal-cli] / .github / workflows / ci.yml
index df7a6c7929a81657198299329a4265fa56ae76f2..23e1922527d71be59e96e3f6e1691c9fdcf7c7da 100644 (file)
@@ -16,7 +16,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        java: [ '21', '22' ]
+        java: [ '21', '24' ]
 
     steps:
       - uses: actions/checkout@v4
@@ -26,15 +26,26 @@ jobs:
           distribution: 'zulu'
           java-version: ${{ matrix.java }}
       - name: Setup Gradle
-        uses: gradle/gradle-build-action@v2
+        uses: gradle/actions/setup-gradle@v4
         with:
           dependency-graph: generate-and-submit
+      - name: Install asciidoc
+        run: sudo apt update && sudo apt --no-install-recommends install -y asciidoc-base
       - name: Build with Gradle
         run: ./gradlew --no-daemon build
+      - name: Build man page
+        run: |
+          cd man
+          make install
+      - name: Add man page to archive
+        run: |
+          version=$(tar tf build/distributions/signal-cli-*.tar | head -n1 | sed 's|signal-cli-\([^/]*\)/.*|\1|')
+          echo $version
+          tar --transform="flags=r;s|man|signal-cli-${version}/man|" -rf build/distributions/signal-cli-${version}.tar man/man{1,5}
       - name: Compress archive
         run: gzip -n -9 build/distributions/signal-cli-*.tar
       - name: Archive production artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: signal-cli-archive-${{ matrix.java }}
           path: build/distributions/signal-cli-*.tar.gz
@@ -54,7 +65,32 @@ jobs:
       - name: Build with Gradle
         run: ./gradlew --no-daemon nativeCompile
       - name: Archive production artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: signal-cli-native
           path: build/native/nativeCompile/signal-cli
+
+  build-client:
+    strategy:
+      matrix:
+        os:
+          - ubuntu
+          - macos
+          - windows
+    runs-on: ${{ matrix.os }}-latest
+    defaults:
+      run:
+        working-directory: ./client
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install rust
+        run: rustup default stable
+      - name: Build client
+        run: cargo build --release --verbose
+      - name: Archive production artifacts
+        uses: actions/upload-artifact@v4
+        with:
+          name: signal-cli-client-${{ matrix.os }}
+          path: |
+            client/target/release/signal-cli-client
+            client/target/release/signal-cli-client.exe