From 5058c324f2b20987edfc405bd0aab86e1b4ba807 Mon Sep 17 00:00:00 2001 From: dashaun Date: Thu, 14 Dec 2023 16:57:31 -0600 Subject: [PATCH] add multi-arch-manifests --- .circleci/config.yml | 38 ++++++++++++++++++++ .github/workflows/amd64-native.yml | 58 ++++++++++++++++++++++++++++++ pom.xml | 2 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 .circleci/config.yml create mode 100644 .github/workflows/amd64-native.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..69d7efa --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,38 @@ +version: 2.1 + +orbs: + docker: circleci/docker@2.2.0 + sdkman: joshdholtz/sdkman@0.2.0 + +jobs: + arm64-native: + machine: + image: ubuntu-2004:current + resource_class: arm.medium + steps: + - checkout + - sdkman/setup-sdkman + - sdkman/sdkman-install: + candidate: java + version: 21.0.1-graalce + - run: + name: "bootBuildImage" + command: "./mvnw -Pnative spring-boot:build-image" + - docker/check: + docker-username: DOCKER_LOGIN + docker-password: DOCKERHUB_PASSWORD + - docker/push: + image: dashaun/com.javagrunt.listener.youtube + tag: $CIRCLE_TAG-aarch_64 + +workflows: + arm64-native-workflow: + jobs: + - arm64-native: + context: + - dashaun-dockerhub + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ \ No newline at end of file diff --git a/.github/workflows/amd64-native.yml b/.github/workflows/amd64-native.yml new file mode 100644 index 0000000..9988b16 --- /dev/null +++ b/.github/workflows/amd64-native.yml @@ -0,0 +1,58 @@ +name: Native-AMD64 + +on: + push: + tags: + - "v*" + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/setup-java@v2 + with: + distribution: 'liberica' # See 'Supported distributions' for available options + java-version: '21' + - name: Checkout master + uses: actions/checkout@v3 + with: + submodules: true + #Build Image + - name: Build Image + run: ./mvnw -Pnative spring-boot:build-image + #Login to DockerHub + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + #Tag the version + #Deploy the image to the Docker registry + - name: Push Images to Docker Registry + run: docker push -a dashaun/com.javagrunt.listener.youtube + + + manifest: + needs: build + runs-on: ubuntu-latest + steps: + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: pull-arm64 + uses: nick-fields/retry@v2 + with: + timeout_minutes: 5 + retry_wait_seconds: 60 + max_attempts: 6 + command: docker pull dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME-aarch_64 + - name: create-manifest + run: | + docker manifest create dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME --amend dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME-x86_64 --amend dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME-aarch_64 + docker manifest push dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME + docker manifest create dashaun/com.javagrunt.listener.youtube:latest --amend dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME-x86_64 --amend dashaun/com.javagrunt.listener.youtube:$GITHUB_REF_NAME-aarch_64 + docker manifest push dashaun/com.javagrunt.listener.youtube:latest \ No newline at end of file diff --git a/pom.xml b/pom.xml index 546c663..954908f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.javagrunt.listener youtube 0 - ${project.groupId}:${project.artifactId} + ${project.groupId}.${project.artifactId} 21