diff --git a/.circleci/config.yml b/.circleci/config.yml index 029c9f6..8dc2d17 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,6 +8,10 @@ docker_executor_image: &docker_executor_image - image: cimg/openjdk:17.0.11 <<: *docker_auth +vm_executor_image: &vm_executor_image + machine: + image: ubuntu-2204:2023.04.2 + work_directory: &work_directory working_directory: ~/artifactory-badge @@ -27,7 +31,7 @@ pr_filter: &pr_filter ignore: master orbs: - templates: devatherock/circleci-templates@dev:alpha + templates: devatherock/circleci-templates@0.7.0 parameters: repo_name: @@ -52,14 +56,16 @@ executors: <<: *docker_executor_image resource_class: medium <<: *work_directory + arm-native-image-executor: + <<: *docker_executor_image + resource_class: arm.medium + <<: *work_directory machine-executor: - machine: - image: ubuntu-2204:2023.04.2 + <<: *vm_executor_image resource_class: medium <<: *work_directory arm-executor: - machine: - image: ubuntu-2004:2022.04.1 + <<: *vm_executor_image resource_class: arm.medium <<: *work_directory @@ -76,7 +82,7 @@ jobs: - v1-dependencies-{{ checksum "build.gradle" }} - v1-dependencies - run: | - ./gradlew check sonar -Dsonar.login=$SONAR_TOKEN -Dgraalvm=true + ./gradlew check sonar -Dsonar.token=$SONAR_TOKEN -Dgraalvm=true - store_artifacts: path: build/reports - store_test_results: @@ -92,7 +98,7 @@ jobs: - v1-dependencies-{{ checksum "build.gradle" }} - v1-dependencies - run: | - ./gradlew build coveralls sonar -Dsonar.login=$SONAR_TOKEN -Dgraalvm=true + ./gradlew build coveralls sonar -Dsonar.token=$SONAR_TOKEN -Dgraalvm=true - persist_to_workspace: root: ~/artifactory-badge paths: @@ -107,39 +113,27 @@ jobs: key: v1-dependencies-{{ checksum "build.gradle" }} publish: - executor: native-image-executor + parameters: + runner: + type: executor + tag_suffix: + type: string + executor: << parameters.runner >> steps: - checkout - setup_remote_docker - attach_workspace: at: ~/artifactory-badge - run: | - TAG=${CIRCLE_SHA1:0:8} + TAG=${CIRCLE_SHA1:0:8}-<< parameters.tag_suffix >> echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin docker build \ -t devatherock/artifactory-badge:$TAG \ - -t devatherock/artifactory-badge:latest \ - -t devatherock/artifactory-badge:amd64 . - docker image push --all-tags devatherock/artifactory-badge - - publish_arm: - executor: arm-executor - steps: - - checkout - - attach_workspace: - at: ~/artifactory-badge - - run: | - TAG=${CIRCLE_SHA1:0:8}-arm64 - echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin - docker build \ - -t devatherock/artifactory-badge:$TAG \ - -t devatherock/artifactory-badge:arm64 . + -t devatherock/artifactory-badge:<< parameters.tag_suffix >> . docker image push --all-tags devatherock/artifactory-badge integration_test: parameters: - command_args: - type: string runner: type: executor executor: << parameters.runner >> @@ -152,7 +146,7 @@ jobs: - v1-integration-{{ checksum "build.gradle" }} - v1-integration - run: | - make integration-test remote-integration-test << parameters.command_args >> + make integration-test remote-integration-test - save_cache: paths: - ~/.gradle @@ -171,14 +165,11 @@ jobs: TAG=${CIRCLE_TAG#v} DEV_TAG=${CIRCLE_SHA1:0:8} echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin - docker pull devatherock/artifactory-badge:$DEV_TAG - docker tag devatherock/artifactory-badge:$DEV_TAG devatherock/artifactory-badge:$TAG - docker tag devatherock/artifactory-badge:$DEV_TAG devatherock/artifactory-badge:${TAG}-amd64 - docker pull devatherock/artifactory-badge:${DEV_TAG}-arm64 - docker tag devatherock/artifactory-badge:${DEV_TAG}-arm64 devatherock/artifactory-badge:${TAG}-arm64 - docker push devatherock/artifactory-badge:$TAG - docker push devatherock/artifactory-badge:${TAG}-amd64 - docker push devatherock/artifactory-badge:${TAG}-arm64 + docker buildx create --name rockbuilder \ + --driver docker-container --use --bootstrap + docker buildx imagetools create \ + -t devatherock/<< pipeline.parameters.repo_name >>:$TAG \ + devatherock/<< pipeline.parameters.repo_name >>:$DEV_TAG workflows: version: 2.1 @@ -209,13 +200,26 @@ workflows: - publish: context: - docker-credentials + runner: native-image-executor + tag_suffix: amd64 requires: - build - - publish_arm: + - publish: + name: publish_arm context: - docker-credentials + runner: arm-native-image-executor + tag_suffix: arm64 requires: - build + - templates/image_merge: + name: publish_multi_arch + context: + - docker-credentials + docker_image: '<< pipeline.parameters.repo_name >>' + requires: + - publish + - publish_arm - templates/dockerhub_readme_update: name: dockerhub_readme context: @@ -225,21 +229,19 @@ workflows: image_description: 'Badge generator for docker registries hosted in jfrog artifactory' work_dir: '~/<< pipeline.parameters.repo_name >>' requires: - - publish_arm + - publish_multi_arch - integration_test: name: integration_test_amd context: - docker-credentials runner: machine-executor - command_args: '' requires: - - publish + - publish_multi_arch - integration_test: name: integration_test_arm context: - docker-credentials runner: arm-executor - command_args: 'docker_tag=arm64' requires: - dockerhub_readme diff --git a/CHANGELOG.md b/CHANGELOG.md index b9d6473..fbd8197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,28 +7,22 @@ ### Changed - Specified all generated json config files to the `native-image` command - fix(deps): update dependency net.logstash.logback:logstash-logback-encoder to v7.4 -- chore(deps): update plugin org.sonarqube to v4.4.1.3373 - chore: Made the gradle-includes location configurable - Configure Mend Bolt for GitHub - fix(deps): update dependency org.jsoup:jsoup to v1.17.2 - chore(deps): update plugin com.diffplug.spotless to v6.25.0 -- chore(deps): update cimg/openjdk docker tag to v17.0.10 - chore(deps): update dependency gradle to v7.6.4 - fix(deps): update dependency org.codehaus.janino:janino to v3.1.12 -- fix(deps): update dependency org.wiremock:wiremock to v3.4.2 -- fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.3 -- chore(deps): update plugin org.owasp.dependencycheck to v9.0.10 - fix(deps): update dependency org.projectlombok:lombok to v1.18.32 - fix(deps): update dependency io.micronaut:micronaut-bom to v3.10.4 -- fix(deps): update dependency org.wiremock:wiremock to v3.5.1 - chore(deps): update plugin org.sonarqube to v5 -- fix(deps): update dependency org.wiremock:wiremock to v3.5.2 -- chore(deps): update plugin org.owasp.dependencycheck to v9.1.0 -- fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.5 - chore(deps): update cimg/openjdk docker tag to v17.0.11 - fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.6 -- fix(deps): update dependency org.wiremock:wiremock to v3.5.3 - fix(deps): update dependency org.wiremock:wiremock to v3.5.4 +- Combined the amd64 and arm64 images into a single multi-arch image + +### Removed +- Dependency check plugin ## [2.0.0] - 2023-06-03 ### Added diff --git a/Makefile b/Makefile index 93c8f0c..f7ef484 100644 --- a/Makefile +++ b/Makefile @@ -10,9 +10,7 @@ remote-integration-test: DOCKER_TAG=$(docker_tag) docker-compose -f docker-compose-remote.yml up & ./gradlew integrationTest --tests '*RemoteUrlsIntegrationSpec*' docker-compose down -build: +build-all: ./gradlew build -Dgraalvm=true -fast-build: - ./gradlew build -Dgraalvm=true -x dependencyCheckAggregate docker-build: docker build -t devatherock/artifactory-badge:$(docker_tag) . \ No newline at end of file diff --git a/build.gradle b/build.gradle index d6fd028..4ab6572 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,6 @@ plugins { id 'org.sonarqube' version '5.0.0.4638' id 'com.github.kt3k.coveralls' version '2.12.2' id 'com.diffplug.spotless' version '6.25.0' - id 'org.owasp.dependencycheck' version '9.1.0' } version "2.0.0"