diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..32a874b9b --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,40 @@ +name: Docker Image CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + + + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Build & push the Docker image + env: + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + DB_USERNAME: ${{ secrets.DB_USERNAME }} + DB_HOST: ${{ secrets.DB_HOST }} + DB_NAME: ${{ secrets.DB_NAME }} + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + ECR_REPOSITORY: employee_demo + IMAGE_TAG: derry-t2-api + run: | + docker build --build-arg DB_PASSWORD=${DB_PASSWORD} --build-arg DB_USERNAME=${DB_USERNAME} --build-arg DB_HOST=${DB_HOST} --build-arg DB_NAME=${DB_NAME} -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \ No newline at end of file diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 000000000..600d5787f --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,28 @@ +name: Java CI with Maven + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Build with Maven + env: + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + DB_USERNAME: ${{ secrets.DB_USERNAME }} + DB_HOST: ${{ secrets.DB_HOST }} + DB_NAME: ${{ secrets.DB_NAME }} + run: mvn clean integration-test \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..6988a5926 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM maven:latest + +WORKDIR /code +COPY . /code + +ARG DB_HOST +ARG DB_NAME +ARG DB_USERNAME +ARG DB_PASSWORD +ENV DB_HOST ${DB_HOST} +ENV DB_PASSWORD ${DB_PASSWORD} +ENV DB_USERNAME ${DB_USERNAME} +ENV DB_NAME ${DB_NAME} + + +RUN mvn clean install -DskipTests=true + +EXPOSE 8080 + +CMD ["java","-jar", "/code/target/java-dropwizard-flyway-starter-1.0-SNAPSHOT.jar", "server", "/code/config.yml"] +