From 4dd902a38836150c9e319e085dec9d811a8d29e0 Mon Sep 17 00:00:00 2001 From: broknloop <90255202+broknloop@users.noreply.github.com> Date: Thu, 9 Nov 2023 04:07:55 +0100 Subject: [PATCH] Create maven.yml (#36) * Create maven.yml * Update maven.yml * Try full workflow --------- Co-authored-by: Broknloop --- .github/workflows/docker-image.yml | 29 ----------- .github/workflows/main.yaml | 78 ++++++++++++++++++++++++++++++ Dockerfile | 13 +++-- 3 files changed, 86 insertions(+), 34 deletions(-) delete mode 100644 .github/workflows/docker-image.yml create mode 100644 .github/workflows/main.yaml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index bdd7b95..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: ci - -on: - push: - branches: - - "main" - -jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: user/app:latest diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..1f44fdf --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,78 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java CI with Maven + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: '0' + + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + java-version: '21' + distribution: 'corretto' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml + + - name: Update dependency graph + uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 + + - name: Bump version and push tag + uses: anothrNick/github-tag-action@1.64.0 # Don't use @master or @v1 unless you're happy to test the latest version + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # if you don't want to set write permissions use a PAT token + WITH_V: false + + - name: Generate Docker metadata + id: meta + uses: docker/metadata-action@v3 + with: + images: | + vispana/vispana + docker.io/vispana/vispana + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + flavor: | + latest=true + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index 4843a25..3d05d71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,14 @@ FROM amazoncorretto:21.0.1 -WORKDIR /app -# As github actions lacks support for Java 21, let's send all files and use Docker to build the -# image and run it -COPY ./ . +RUN mkdir /app + +COPY src/ /app/src/ +COPY target/vispana-0.0.1-SNAPSHOT.jar /app/target/vispana-0.0.1-SNAPSHOT.jar +#COPY src /app -RUN ./mvnw spring-boot:run +WORKDIR /app # Expose the port that your Spring Boot application listens on (default is 8080) EXPOSE 4000 + +ENTRYPOINT ["java","--enable-preview", "-jar", "target/vispana-0.0.1-SNAPSHOT.jar"]