diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..eb0e0b4 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + extends: [ + "@redhat-actions/eslint-config", + ], +}; \ No newline at end of file diff --git a/.github/workflows/verify-build.yml b/.github/workflows/verify-build.yml index c2143f8..9885cc6 100644 --- a/.github/workflows/verify-build.yml +++ b/.github/workflows/verify-build.yml @@ -4,8 +4,9 @@ name: Test Build on: [push, pull_request, workflow_dispatch] env: - TEST_REPO: spring-petclinic + PROJECT_DIR: spring-petclinic IMAGE_NAME: spring-petclinic + MVN_REPO_DIR: ~/.m2/repository jobs: build: @@ -24,7 +25,22 @@ jobs: uses: actions/checkout@v2 with: repository: "spring-projects/spring-petclinic" - path: ${{ env.TEST_REPO }} + path: ${{ env.PROJECT_DIR }} + + # If none of these files has changed, we assume that the contents of + # .m2/repository can be fetched from the cache. + - name: Hash Maven files + working-directory: ${{ env.PROJECT_DIR }} + run: | + echo "MVN_HASH=${{ hashFiles('**/pom.xml', '.mvn/**/*', 'mvnw*') }}" >> $GITHUB_ENV + + # Download the m2 repository from the cache to speed up the build. + - name: Check for Maven cache + id: check-mvn-cache + uses: actions/cache@v2 + with: + path: ${{ env.MVN_REPO_DIR }} + key: ${{ env.MVN_HASH }} # Setup java. - name: Setup Java @@ -34,23 +50,39 @@ jobs: # Run maven to build the project - name: Maven - working-directory: ${{ env.TEST_REPO }} + working-directory: ${{ env.PROJECT_DIR }} run: | mvn package -ntp -B + # If there was no cache hit above, store the output into the cache now. + - name: Save Maven repo into cache + if: ${{ steps.check-mvn-cache.outputs.cache-hit }} != 'true' + uses: actions/cache@v2 + with: + path: ${{ env.MVN_REPO_DIR }} + key: ${{ env.MVN_HASH }} + # Build image using Buildah action - name: Build Image + id: build_image uses: ./buildah-build/ with: image: ${{ env.IMAGE_NAME }} + tags: 'latest ${{ github.sha }}' + base-image: 'registry.access.redhat.com/openjdk/openjdk-11-rhel7' # To avoid hardcoding a particular version of the binary. content: | - ./spring-petclinic/target/spring-petclinic-*.BUILD-SNAPSHOT.jar + ./spring-petclinic/target/spring-petclinic-*.jar entrypoint: | java -jar - spring-petclinic-*.BUILD-SNAPSHOT.jar + spring-petclinic-*.jar port: 8080 + + - name: Echo Outputs + run: | + echo "Image: ${{ steps.build_image.outputs.image }}" + echo "Tags: ${{ steps.build_image.outputs.tags }}" # Check if image is build - name: Check images created diff --git a/README.md b/README.md index e492886..f514b94 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ After building your image, use [push-to-registry](https://github.com/redhat-acti
latest ${{ github.sha }}
.latest