Skip to content

[2023/6] Wait For It (Part 2) #148

[2023/6] Wait For It (Part 2)

[2023/6] Wait For It (Part 2) #148

name: "Build and Test"
on:
push:
branches:
- "master"
jobs:
build-natively-with-gradle:
name: "Build natively with Gradle"
runs-on: "ubuntu-latest"
steps:
- name: "Check out source code"
uses: "actions/checkout@v4.1.1"
- name: "Set up JDK 8"
uses: "actions/setup-java@v3.13.0"
with:
java-version: "8"
distribution: "corretto"
- name: "Validate Gradle wrapper"
uses: "gradle/wrapper-validation-action@v1.1.0"
- name: "Set up Gradle"
uses: "gradle/gradle-build-action@v2.9.0"
- name: "Build with Gradle"
run: "gradle build"
- name: "Upload 'AdventOfCode.jar' artifact"
uses: "actions/upload-artifact@v3.1.3"
with:
name: "AdventOfCode.jar"
path: "build/libs/AdventOfCode.jar"
if-no-files-found: "error"
- name: "Upload Ktlint reports artifact"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.3"
with:
name: "Ktlint reports"
path: "build/reports/ktlint"
if-no-files-found: "error"
- name: "Upload test summary artifact"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.3"
with:
name: "Test summary"
path: "build/reports/tests/test"
if-no-files-found: "error"
- name: "Upload coverage report artifact"
if: "${{ always() }}"
uses: "actions/upload-artifact@v3.1.3"
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"
run-jar-natively:
name: "Run JAR archive natively"
needs: "build-natively-with-gradle"
runs-on: "ubuntu-latest"
steps:
- name: "Download 'AdventOfCode.jar' artifact"
uses: "actions/download-artifact@v3.0.2"
with:
name: "AdventOfCode.jar"
path: "."
- name: "Set up JDK 8"
uses: "actions/setup-java@v3.13.0"
with:
java-version: "8"
distribution: "corretto"
- name: "Run JAR archive"
run: "java -jar AdventOfCode.jar 2023"
build-docker-image:
name: "Build Docker Image"
runs-on: "ubuntu-latest"
steps:
- name: "Check out source code"
uses: "actions/checkout@v4.1.1"
- 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:
tags: "pfolta/advent-of-code:latest"
outputs: "type=docker, dest=AdventOfCode.tar"
push: false
- name: "Upload Docker image artifact"
uses: "actions/upload-artifact@v3.1.3"
with:
name: "Docker Image"
path: "AdventOfCode.tar"
if-no-files-found: "error"
run-docker-image:
name: "Run Docker Image"
needs: "build-docker-image"
runs-on: "ubuntu-latest"
steps:
- name: "Download Docker image artifact"
uses: "actions/download-artifact@v3.0.2"
with:
name: "Docker Image"
path: "."
- name: "Load Docker image"
run: |
docker load --input AdventOfCode.tar
docker image ls pfolta/advent-of-code
- name: "Run Docker image"
uses: "addnab/docker-run-action@v3"
with:
image: "pfolta/advent-of-code:latest"
run: "java -jar AdventOfCode.jar 2023"