X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ab0186723518c7c3b0ce62581ebe282bd7bb7b74..dc787be17ba3ec2396c992b77fff3aa7d98d259c:/.github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ffd7b48..23e19225 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: workflow_call: permissions: - contents: read # to fetch code (actions/checkout) + contents: write # to fetch code (actions/checkout) and submit dependency graph (gradle/gradle-build-action) jobs: build: @@ -16,22 +16,36 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '17', '20' ] + java: [ '21', '24' ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v3 with: - distribution: 'temurin' + distribution: 'zulu' java-version: ${{ matrix.java }} - cache: 'gradle' + - name: Setup Gradle + 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 @@ -41,18 +55,42 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: version: 'latest' - java-version: '17' + java-version: '21' 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 + 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