Skip to content
Snippets Groups Projects
Commit 2542d0f3 authored by Stian Lyng's avatar Stian Lyng
Browse files

add github workflow

parent cd18ea3b
No related branches found
No related tags found
No related merge requests found
# Use a specific version of the JDK image to ensure consistency
FROM eclipse-temurin:19-jdk-alpine AS build
## Use a specific version of the JDK image to ensure consistency
#FROM eclipse-temurin:19-jdk-alpine AS build
#
## Set the working directory
#WORKDIR /app
#
## Copy the pom.xml file first, and then download dependencies separately to take advantage of Docker layer caching
#COPY pom.xml .
#RUN apk add maven
#RUN mvn dependency:go-offline
#
## Copy the source code and package the application
#COPY src ./src
#RUN mvn clean package
#
## Use a new stage to reduce the final image size
#FROM eclipse-temurin:19-jre-alpine
#
## Set the working directory
#WORKDIR /app
#
## Copy the packaged application from the build stage
#COPY --from=build /app/target/SmartMat-0.0.1-SNAPSHOT.jar ./SmartMat.jar
#
## Define the entrypoint and expose the application port
#ENTRYPOINT ["java","-jar","SmartMat.jar"]
#EXPOSE 8080
#
# Use the official Maven image as the base image
FROM maven:3.6.3-jdk-11 as builder
# Set the working directory
WORKDIR /app
# Copy the pom.xml file first, and then download dependencies separately to take advantage of Docker layer caching
# Copy the pom.xml file to the working directory
COPY pom.xml .
RUN apk add maven
# Download and cache dependencies to improve build times
RUN mvn dependency:go-offline
# Copy the source code and package the application
# Copy the rest of the application code
COPY src ./src
# Build the application and package it as a JAR file
RUN mvn clean package
# Use a new stage to reduce the final image size
FROM eclipse-temurin:19-jre-alpine
# Use the official OpenJDK image as the runtime image
FROM openjdk:11-jre-slim
# Set the working directory
WORKDIR /app
# Copy the packaged application from the build stage
COPY --from=build /app/target/SmartMat-0.0.1-SNAPSHOT.jar ./SmartMat.jar
# Copy the JAR file from the builder stage
COPY --from=builder /app/target/*.jar ./app.jar
# Define the entrypoint and expose the application port
ENTRYPOINT ["java","-jar","SmartMat.jar"]
# Expose the port the application will run on
EXPOSE 8080
# Run the application
CMD ["java", "-jar", "app.jar"]
\ No newline at end of file
name: Build
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Cache Maven dependencies
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 -B
- name: Upload JAR file
uses: actions/upload-artifact@v2
with:
name: my-jar-file
path: target/*.jar
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment