Skip to content

[Docker] Add Dockerfile and GitHub workflow to build Docker image #127

[Docker] Add Dockerfile and GitHub workflow to build Docker image

[Docker] Add Dockerfile and GitHub workflow to build Docker image #127

name: "Build and Test"
on:
push:
branches:
- "master"
jobs:
build-and-test:
name: "Build and Test"
runs-on: "ubuntu-latest"
steps:
- name: "Check out source code"
uses: "actions/checkout@v3.5.3"
- name: "Set up JDK 8"
uses: "actions/setup-java@v3.11.0"
with:
java-version: "8"
distribution: "corretto"
- name: "Validate Gradle wrapper"
uses: "gradle/wrapper-validation-action@v1.0.6"
- name: "Set up Gradle"
uses: "gradle/gradle-build-action@v2.4.2"
- name: "Build with Gradle"
run: "gradle build"
- name: "Upload 'AdventOfCode.jar'"
uses: "actions/upload-artifact@v3.1.2"
with:
name: "AdventOfCode.jar"
path: "build/libs/AdventOfCode.jar"
if-no-files-found: "error"
- name: "Upload Ktlint reports"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.2"
with:
name: "Ktlint reports"
path: "build/reports/ktlint"
if-no-files-found: "error"
- name: "Upload test summary"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.2"
with:
name: "Test summary"
path: "build/reports/tests/test"
if-no-files-found: "error"
- name: "Upload coverage report"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.2"
with:
name: "Coverage report"
path: "build/reports/jacoco/test/html"
if-no-files-found: "error"
- name: "Publish coverage data to Codecov"
uses: "codecov/codecov-action@v3.1.4"
build-docker-image:
name: "Build Docker Image"
runs-on: "ubuntu-latest"
steps:
- name: "Check out source code"
uses: "actions/checkout@v3.5.3"
- name: "Set up Docker Buildx"
uses: "docker/setup-buildx-action@v3.0.0"
- name: "Build Docker Image"
uses: "docker/build-push-action@v5.0.0"
with:
push: false
tags: "pfolta/advent-of-code:latest"