diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 87a6078..fa13a44 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -7,48 +7,116 @@ on: branches: [ "master" ] jobs: + project-build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + + - name: Set up the Maven dependencies caching + uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 - push_to_registry: - name: Push Docker image to Docker Hub + - name: Install Maven dependencies + run: mvn install + + - name: Run tests + run: mvn --batch-mode --update-snapshots verify + + docker-build: + if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true + needs: + - project-build steps: - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to Docker Hub - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + - uses: actions/checkout@v3 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 with: - username: ${{ secrets.DOCKER_USER }} - password: ${{ secrets.DOCKER_PASSWORD }} + java-version: '11' + distribution: 'adopt' - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + - name: Cache Maven packages + uses: actions/cache@v3 with: - images: dudosart/dorna-app + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 - - name: Set image version - run: echo "::set-env name=IMAGE_VERSION::$(date +'%Y%m%d%H%M%S')" - - - name: Debug Meta Tags - run: echo "Meta Tags:${{ steps.meta.outputs.tags }}" + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 - - name: Debug Image Version - run: echo "Image Version:${{ env.IMAGE_VERSION }}" + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - - name: Build and push Docker image - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + - name: Dashboard to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v4 with: context: . - file: ./Dockerfile + file: Dockerfile push: true - tags: | - dudosart/dorna-app:latest - dudosart/dorna-app:${{ github.sha }} - labels: ${{ steps.meta.outputs.labels }} + tags: dudosart/dorna-app:latest + + + + + # push_to_registry: + # name: Push Docker image to Docker Hub + # runs-on: ubuntu-latest + # env: + # ACTIONS_ALLOW_UNSECURE_COMMANDS: true + # steps: + # - + # name: Set up QEMU + # uses: docker/setup-qemu-action@v3 + # - + # name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v3 + + # - name: Log in to Docker Hub + # uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + # with: + # username: ${{ secrets.DOCKER_USER }} + # password: ${{ secrets.DOCKER_PASSWORD }} + + # - name: Extract metadata (tags, labels) for Docker + # id: meta + # uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + # with: + # images: dudosart/dorna-app + + # - name: Set image version + # run: echo "::set-env name=IMAGE_VERSION::$(date +'%Y%m%d%H%M%S')" + + # - name: Debug Meta Tags + # run: echo "Meta Tags:${{ steps.meta.outputs.tags }}" + + # - name: Debug Image Version + # run: echo "Image Version:${{ env.IMAGE_VERSION }}" + + # - name: Build and push Docker image + # uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + # with: + # context: . + # file: ./Dockerfile + # push: true + # tags: | + # dudosart/dorna-app:latest + # dudosart/dorna-app:${{ github.sha }} + # labels: ${{ steps.meta.outputs.labels }}