From eba687039151e66d5d3699b0113cb6fbfc15990c Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Wed, 27 Nov 2024 15:49:29 +0800 Subject: [PATCH 1/3] workflows: add pipeline sync-images-microservice-demo --- .../sync-images-microservice-demo.yaml | 155 ++++++++++++++++++ .../sync-images-opentelemetry-demo.yaml | 2 +- 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/sync-images-microservice-demo.yaml diff --git a/.github/workflows/sync-images-microservice-demo.yaml b/.github/workflows/sync-images-microservice-demo.yaml new file mode 100644 index 0000000..dbfe4d2 --- /dev/null +++ b/.github/workflows/sync-images-microservice-demo.yaml @@ -0,0 +1,155 @@ +name: Sync Images for Microservice Demo + +on: + schedule: + - cron: "0 0 * * *" + pull_request: + paths: + - '.github/workflows/sync-images-microservice-demo.yaml' + workflow_dispatch: + branches: + - main + +jobs: + checkoutservice: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync checkoutservice images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} + ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com + docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/checkoutservice:1.0.0-SNAPSHOT + docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/checkoutservice:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT + + frontend: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync frontend images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} + ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com + docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/frontend:1.0.0-SNAPSHOT + docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/frontend:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT + + loadgenerator: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync loadgenerator images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} + ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com + docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/loadgenerator:1.0.0-SNAPSHOT + docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/loadgenerator:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT + + productservice: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync productservice images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} + ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com + docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/productservice:1.0.0-SNAPSHOT + docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/productservice:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/productservice:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT + + zuul-gateway: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync zuul-gateway images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} + ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com + docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/zuul-gateway:1.0.0-SNAPSHOT + docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/zuul-gateway:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/zuul-gateway:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/zuul-gateway:1.0.0-SNAPSHOT + + mysql: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync mysql 5.6 images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + docker pull mysql:5.6 + docker tag mysql:5.6 images.onwalk.net/public/microservice-demo/mysql:5.6 + docker push images.onwalk.net/public/microservice-demo/mysql:5.6 + + redis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync redis images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + docker pull redis:latest + docker tag redis:latest images.onwalk.net/public/microservice-demo/redis:latest + docker push images.onwalk.net/public/microservice-demo/redis:latest + + nacos: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: sync nacos images + env: + USER: ${{ secrets.IMAGES_REPO_USER }} + PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} + shell: bash + run: | + sudo apt update && sudo apt install -y git + echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net + docker pull nacos/nacos-server:latest + docker tag nacos/nacos-server:latest images.onwalk.net/public/microservice-demo/nacos-server:latest + docker push images.onwalk.net/public/microservice-demo/nacos-server:latest diff --git a/.github/workflows/sync-images-opentelemetry-demo.yaml b/.github/workflows/sync-images-opentelemetry-demo.yaml index 6a6f081..d77a512 100644 --- a/.github/workflows/sync-images-opentelemetry-demo.yaml +++ b/.github/workflows/sync-images-opentelemetry-demo.yaml @@ -1,4 +1,4 @@ -name: Sync OpenTelemetry Demo Images +sync-images-microservice-demo.yamlname: Sync OpenTelemetry Demo Images on: schedule: From 456966f8e0f8580389c5b5d7deb2037171e08e3e Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Wed, 27 Nov 2024 16:55:10 +0800 Subject: [PATCH 2/3] workflows: build and push alibabacloud-microservice-demo images --- .../sync-images-microservice-demo.yaml | 101 ++++-------------- .../sync-images-opentelemetry-demo.yaml | 2 +- 2 files changed, 19 insertions(+), 84 deletions(-) diff --git a/.github/workflows/sync-images-microservice-demo.yaml b/.github/workflows/sync-images-microservice-demo.yaml index dbfe4d2..3ecdecd 100644 --- a/.github/workflows/sync-images-microservice-demo.yaml +++ b/.github/workflows/sync-images-microservice-demo.yaml @@ -11,99 +11,34 @@ on: - main jobs: - checkoutservice: - runs-on: ubuntu-latest + alibabacloud-microservice-demo: + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - - name: sync checkoutservice images + - name: build and push alibabacloud-microservice-demo images env: USER: ${{ secrets.IMAGES_REPO_USER }} PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} - ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} - ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} shell: bash run: | - sudo apt update && sudo apt install -y git + sudo apt update && sudo apt install -y git maven openjdk-11-jdk + sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java + java -version echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com - docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/checkoutservice:1.0.0-SNAPSHOT - docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/checkoutservice:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT - docker push images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT + git clone https://github.com/aliyun/alibabacloud-microservice-demo.git -b jdk11 + cd alibabacloud-microservice-demo/ + mvn clean install -U + mvn --batch-mode clean package install && \ + cd src/frontend && docker build -t images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT . && \ + cd ../cartservice && docker build -t images.onwalk.net/public/microservice-demo/cartservice:1.0.0-SNAPSHOT . && \ + cd ../productservice && docker build -t images.onwalk.net/public/microservice-demo/productservice:1.0.0-SNAPSHOT . && \ + cd ../checkoutservice && docker build -t images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT . && \ + cd ../zuul-gateway && docker build -t images.onwalk.net/public/microservice-demo/zuul-gateway:1.0.0-SNAPSHOT . - frontend: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: sync frontend images - env: - USER: ${{ secrets.IMAGES_REPO_USER }} - PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} - ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} - ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} - shell: bash - run: | - sudo apt update && sudo apt install -y git - echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com - docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/frontend:1.0.0-SNAPSHOT - docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/frontend:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT docker push images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT - - loadgenerator: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: sync loadgenerator images - env: - USER: ${{ secrets.IMAGES_REPO_USER }} - PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} - ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} - ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} - shell: bash - run: | - sudo apt update && sudo apt install -y git - echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com - docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/loadgenerator:1.0.0-SNAPSHOT - docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/loadgenerator:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT - docker push images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT - - productservice: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: sync productservice images - env: - USER: ${{ secrets.IMAGES_REPO_USER }} - PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} - ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} - ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} - shell: bash - run: | - sudo apt update && sudo apt install -y git - echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com - docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/productservice:1.0.0-SNAPSHOT - docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/productservice:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/productservice:1.0.0-SNAPSHOT - docker push images.onwalk.net/public/microservice-demo/loadgenerator:1.0.0-SNAPSHOT - - zuul-gateway: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: sync zuul-gateway images - env: - USER: ${{ secrets.IMAGES_REPO_USER }} - PASSWORD: ${{ secrets.IMAGES_REPO_PASSWORD }} - ALI_CLOUD_USER: ${{ secrets.ALI_CLOUD_USER }} - ALI_CLOUD_PASSWORD: ${{ secrets.ALI_CLOUD_PASSWORD }} - shell: bash - run: | - sudo apt update && sudo apt install -y git - echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - echo "$ALI_CLOUD_PASSWORD" | docker login --username=$ALI_CLOUD_USER --password-stdin registry.cn-hangzhou.aliyuncs.com - docker pull registry.cn-hangzhou.aliyuncs.com/mse-hz/zuul-gateway:1.0.0-SNAPSHOT - docker tag registry.cn-hangzhou.aliyuncs.com/mse-hz/zuul-gateway:1.0.0-SNAPSHOT images.onwalk.net/public/microservice-demo/zuul-gateway:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/cartservice:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/productservice:1.0.0-SNAPSHOT + docker push images.onwalk.net/public/microservice-demo/checkoutservice:1.0.0-SNAPSHOT docker push images.onwalk.net/public/microservice-demo/zuul-gateway:1.0.0-SNAPSHOT mysql: diff --git a/.github/workflows/sync-images-opentelemetry-demo.yaml b/.github/workflows/sync-images-opentelemetry-demo.yaml index d77a512..6a6f081 100644 --- a/.github/workflows/sync-images-opentelemetry-demo.yaml +++ b/.github/workflows/sync-images-opentelemetry-demo.yaml @@ -1,4 +1,4 @@ -sync-images-microservice-demo.yamlname: Sync OpenTelemetry Demo Images +name: Sync OpenTelemetry Demo Images on: schedule: From 61be17e2fe65d2ef7cae7af93b00ec00114d5717 Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Wed, 27 Nov 2024 21:46:34 +0800 Subject: [PATCH 3/3] sync-images-microservice-demo: update Maven compiler plugin to use Java 17 --- .github/workflows/sync-images-microservice-demo.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sync-images-microservice-demo.yaml b/.github/workflows/sync-images-microservice-demo.yaml index 3ecdecd..7114067 100644 --- a/.github/workflows/sync-images-microservice-demo.yaml +++ b/.github/workflows/sync-images-microservice-demo.yaml @@ -25,10 +25,9 @@ jobs: sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java java -version echo "$PASSWORD" | docker login --username=$USER --password-stdin images.onwalk.net - git clone https://github.com/aliyun/alibabacloud-microservice-demo.git -b jdk11 + git clone https://github.com/svc-design/alibabacloud-microservice-demo.git -b java-openjdk-17 cd alibabacloud-microservice-demo/ - mvn clean install -U - mvn --batch-mode clean package install && \ + mvn clean compile package install && \ cd src/frontend && docker build -t images.onwalk.net/public/microservice-demo/frontend:1.0.0-SNAPSHOT . && \ cd ../cartservice && docker build -t images.onwalk.net/public/microservice-demo/cartservice:1.0.0-SNAPSHOT . && \ cd ../productservice && docker build -t images.onwalk.net/public/microservice-demo/productservice:1.0.0-SNAPSHOT . && \