name: Java CI on: [ push ] jobs: build: runs-on: ubuntu-latest strategy: matrix: java: [ "8", "11", "17" ] steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 # Setup - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Set up Java uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} distribution: "temurin" cache: "maven" # Build - name: Build with Maven run: mvn --batch-mode --update-snapshots verify - name: Upload JAR uses: actions/upload-artifact@v3 if: ${{ matrix.java == '8' }} with: name: commafeed.jar path: commafeed-server/target/commafeed.jar # Docker - name: Login to Container Registry uses: docker/login-action@v2 if: ${{ matrix.java == '8' }} with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker build and push tag uses: docker/build-push-action@v4 if: ${{ matrix.java == '8' && github.ref_type == 'tag' }} with: context: . push: true platforms: linux/amd64,linux/arm/v7,linux/arm64/v8 tags: | athou/commafeed:latest athou/commafeed:${{ github.ref_name }} - name: Docker build and push master uses: docker/build-push-action@v4 if: ${{ matrix.java == '8' && github.ref_name == 'master' }} with: context: . push: true platforms: linux/amd64,linux/arm/v7,linux/arm64/v8 tags: athou/commafeed:master # Create GitHub release after Docker image has been published - name: Extract Changelog Entry uses: mindsers/changelog-reader-action@v2 if: ${{ matrix.java == '8' && github.ref_type == 'tag' }} id: changelog_reader with: version: ${{ github.ref_name }} - name: Create GitHub release uses: softprops/action-gh-release@v1 if: ${{ matrix.java == '8' && github.ref_type == 'tag' }} with: name: CommaFeed ${{ github.ref_name }} body: ${{ steps.changelog_reader.outputs.changes }} draft: false prerelease: false files: | commafeed-server/target/commafeed.jar commafeed-server/config.yml.example