diff --git a/.github/workflows/maven-build.yml b/.github/workflows/ci-learning.yml similarity index 54% rename from .github/workflows/maven-build.yml rename to .github/workflows/ci-learning.yml index 719344e2b..f63d763f8 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/ci-learning.yml @@ -10,7 +10,11 @@ on: branches: [ main ] jobs: - build: + + # The source build job is designed to ensure that the source... + # * builds + # * + source-build: runs-on: ubuntu-latest strategy: @@ -48,10 +52,6 @@ jobs: # My local Linux laptop uses podman rather than docker, so this is a useful debug step. - name: List all the container images on the runner run: docker image - - -####################################### - - name: Checkout code uses: actions/checkout@v2 @@ -88,4 +88,70 @@ jobs: # Collect VCS details from git and add them to the build jf rt build-add-git # Publish build info - jf rt build-publish \ No newline at end of file + jf rt build-publish + + + + +############################## + + container-build: + + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v2 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + + - name: Build the Maven container image + run: ./mvnw spring-boot:build-image + + # I add this step for debug. + # My local Linux laptop uses podman rather than docker, so this is a useful debug step. + - name: List all the container images on the runner + run: docker image + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup JFrog CLI + uses: jfrog/setup-jfrog-cli@v3 + env: + JF_URL: ${{ secrets.JF_URL }} + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} + + - name: Retag image with jfrog repo + run: docker tag spring-petclinic:3.1.0-SNAPSHOT my0373.jfrog.io/my0373-docker/spring-petclinic:3.1.0-SNAPSHOT + + - name: Build Tag and push Docker Image + env: + IMAGE_NAME: my0373.jfrog.io/my0373-docker/spring-petclinic:3.1.0-SNAPSHOT + run: + jf docker push $IMAGE_NAME + + - name: Scan for vulnerabilities + run: + jf scan * + + - name: Publish Build info With JFrog CLI + env: + # Generated and maintained by GitHub + JFROG_CLI_BUILD_NAME: spring-petclinic + # JFrog organization secret + JFROG_CLI_BUILD_NUMBER : ${{ github.run_number }} + run: | + # Export the build name and build nuber + # Collect environment variables for the build + jf rt build-collect-env + # Collect VCS details from git and add them to the build + jf rt build-add-git + # Publish build info + jf rt build-publish