name: build on: push: branches: - "**" pull_request: workflow_call: permissions: {} jobs: build: strategy: matrix: # java="25" is the LTS Java version used in reproducible builds script (default in Containerfile). # More Java versions can be added to test compatibility, eg. "26". java: ["25", "26"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Build run: | if [ "${{ matrix.java }}" != "25" ]; then export OVERRIDE_JAVA_VERSION="${{ matrix.java }}" fi ./reproducible-builds/build.sh - name: Upload build artifacts uses: actions/upload-artifact@v7 with: name: signal-cli-archive-${{ matrix.java }} path: dist/* submit-dependency-graph: runs-on: ubuntu-latest if: github.event_name == 'push' permissions: contents: write steps: - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 with: distribution: 'zulu' java-version: '25' - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 with: dependency-graph: generate-and-submit - name: Generate dependency graph run: ./gradlew --no-daemon dependencies build-client: strategy: matrix: os: - ubuntu - macos - windows runs-on: ${{ matrix.os }}-latest defaults: run: working-directory: ./client steps: - uses: actions/checkout@v6 - name: Install rust run: rustup default stable - name: Build client run: cargo build --release --verbose - name: Archive production artifacts uses: actions/upload-artifact@v7 with: name: signal-cli-client-${{ matrix.os }} path: | client/target/release/signal-cli-client client/target/release/signal-cli-client.exe