X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/2a0bba62be77e55adac113b726c38ddb2d405156..56e11d0857c6131667695b95c9c2805c8a938150:/.github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac6d30b3..ad4dbf15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,14 @@ name: signal-cli CI -on: [push, pull_request] +on: + push: + branches: + - '**' + pull_request: + workflow_call: + +permissions: + contents: write # to fetch code (actions/checkout) and submit dependency graph (gradle/gradle-build-action) jobs: build: @@ -8,20 +16,56 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '11', '16' ] + java: [ '21', '24' ] + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: ${{ matrix.java }} + - 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@v4 + with: + name: signal-cli-archive-${{ matrix.java }} + path: build/distributions/signal-cli-*.tar.gz + + build-graalvm: + + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up JDK - uses: actions/setup-java@v1 - with: - java-version: ${{ matrix.java }} - - name: Build with Gradle - run: ./gradlew build - - name: Compress archive - run: gzip -n -9 build/distributions/signal-cli-*.tar - - name: Archive production artifacts - uses: actions/upload-artifact@v2 - with: - name: signal-cli-archive-${{ matrix.java }} - path: build/distributions/signal-cli-*.tar.gz + - uses: actions/checkout@v4 + - uses: graalvm/setup-graalvm@v1 + with: + version: 'latest' + java-version: '21' + cache: 'gradle' + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Build with Gradle + run: ./gradlew --no-daemon nativeCompile + - name: Archive production artifacts + uses: actions/upload-artifact@v4 + with: + name: signal-cli-native + path: build/native/nativeCompile/signal-cli