diff --git a/.github/workflows/rt-workflow.yml b/.github/workflows/rt-workflow.yml new file mode 100644 index 000000000..40234cab4 --- /dev/null +++ b/.github/workflows/rt-workflow.yml @@ -0,0 +1,77 @@ +name: Build and Publish to Artifactory + +on: + push: + branches: + - main + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Set up JFrog CLI + uses: jfrog/setup-jfrog-cli@v4 + with: + version: 'latest' + env: + # JFrog platform url (for example: https://acme.jfrog.io) + JF_URL: ${{ secrets.JF_URL }} + + # Basic authentication credentials + JF_USER: ${{ secrets.JF_USER }} + JF_PASSWORD: ${{ secrets.JF_PASSWORD }} + + # - name: Configure JFrog CLI + # run: | + # jfrog config add artifactory-server --url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USERNAME --password=$ARTIFACTORY_PASSWORD + + - name: Configure Maven + run: | + jfrog mvn-config --repo-deploy-releases super-demo-libs-release --repo-deploy-snapshots super-demo-libs-snapshot --repo-resolve-releases super-demo-libs-release --repo-resolve-snapshots super-demo-libs-snapshot + + - name: Publish build info to Artifactory + run: | + jfrog rt build-publish omriz-pet-clinic $GITHUB_RUN_NUMBER + + - name: Xray Scan Build + run: | + jfrog build-scan --fail=false --format=json omriz-pet-clinic $GITHUB_RUN_NUMBER + - name: Build Docker Image + run: | + jfrog mvn spring-boot:build-image -Dspring-boot.build-image.imageName=omri-petclinic:1.0-$GITHUB_RUN_NUMBER -DskipTests + - name: Log in to Artifactory Docker registry + run: | + echo ${{ secrets.JF_PASSWORD }} | docker login -u ${{ secrets.JF_USER }} --password-stdin omriz.jfrog.io + + - name: Push Docker image to Artifactory + run: | + docker tag omri-petclinic:1.0-$GITHUB_RUN_NUMBER omriz.jfrog.io/docker-trial/omri-petclinic:1.0-$GITHUB_RUN_NUMBER + jfrog rt dp omriz.jfrog.io/docker-trial/omri-petclinic:1.0-$GITHUB_RUN_NUMBER docker-trial --build-name=omriz-pet-clinic-docker --build-number=$GITHUB_RUN_NUMBER + - name: Publish build info to Artifactory + run: | + jfrog rt build-publish omriz-pet-clinic-docker $GITHUB_RUN_NUMBER + + - name: Xray Scan Build + run: | + jfrog build-scan --fail=false --format=json omriz-pet-clinic-docker $GITHUB_RUN_NUMBER diff --git a/.gitignore b/.gitignore index af0cb9bb0..38d81972b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ build/* _site/ *.css !petclinic.css +.jfrog/ \ No newline at end of file diff --git a/pom.xml b/pom.xml index a9bbd2959..f165d6e44 100644 --- a/pom.xml +++ b/pom.xml @@ -139,6 +139,12 @@ jakarta.xml.bind-api + + + com.squareup.okio + okio-jvm + 3.0.0 +