# This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven name: build on: push: branches: [master, development, docker-setup] pull_request: branches: [master, development, docker-setup] jobs: maven-build: runs-on: ubuntu-latest steps: - name: Get short SHA uses: benjlevesque/short-sha@v1.2 id: short-sha - name: Store short SHA as environment variable run: echo $SHA env: SHA: ${{ steps.short-sha.outputs.sha }} - name: Checkout repository uses: actions/checkout@v2 - name: Set up JDK 8 uses: actions/setup-java@v2 with: java-version: '8' distribution: 'adopt' - name: Cache Maven packages uses: actions/cache@v2 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - name: Build with Maven run: mvn clean install -e -P let_reporting -Dbuild-version="${{ env.SHA }}" env: sebserver-version: ${{ env.SHA }} - name: Reporting uses: codecov/codecov-action@v1 with: flags: unittests name: SEB Server Build fail_ci_if_error: false verbose: false - name: Simplify package name run: mv target/seb-server-${{ env.SHA }}.jar target/seb-server.jar - uses: actions/upload-artifact@v2 with: name: Package path: target/seb-server.jar docker-build: # Run only on tagging # if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') runs-on: ubuntu-latest steps: - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Checkout repository uses: actions/checkout@v2 - name: Download a single artifact uses: actions/download-artifact@v2 with: name: Package # - # name: Generate tags # id: docker_tags # uses: dnaka91/action-docker-tags@v0.1 # - # name: Show generated tags # run: echo "${{ steps.docker_tags.outputs.tags }}" - name: Get short SHA uses: benjlevesque/short-sha@v1.2 id: short-sha - name: Store short SHA as environment variable run: echo $SHA env: SHA: ${{ steps.short-sha.outputs.sha }} - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: context: . file: ./docker/Dockerfile push: true tags: | anhefti/seb-server:latest anhefti/seb-server:${{ env.SHA }}