name: signal-cli CI on: [ push, pull_request, workflow_call ] jobs: build: runs-on: ubuntu-latest strategy: matrix: java: [ '17', '19' ] steps: - uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: ${{ matrix.java }} cache: 'gradle' - name: Build with Gradle run: ./gradlew --no-daemon build - name: Compress archive run: gzip -n -9 build/distributions/signal-cli-*.tar - name: Archive production artifacts uses: actions/upload-artifact@v3 with: name: signal-cli-archive-${{ matrix.java }} path: build/distributions/signal-cli-*.tar.gz build-graalvm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 with: version: 'latest' java-version: '17' 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 with: name: signal-cli-native path: build/native/nativeCompile/signal-cli build-docker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Set up JDK uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '17' cache: 'gradle' - name: Build with Gradle run: ./gradlew --no-daemon build - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Get current version from gradle run: APP_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') - name: Build and push uses: docker/build-push-action@v3 with: context: . push: true tags: ${{ secrets.DOCKERHUB_USERNAME }}/signal-cli:latest, ${{ secrets.DOCKERHUB_USERNAME }}/signal-cli:${{ env.APP_VERSION }}