From 4dd41d8ad2460d9dc7ef9e3868e71ddd4a1b2740 Mon Sep 17 00:00:00 2001 From: yy Date: Tue, 7 Nov 2023 10:42:47 +0800 Subject: [PATCH] add cloud release ci. Signed-off-by: yy --- .github/workflows/cloud-release.yml | 27 +++++++++--- .github/workflows/cloud.yml | 4 -- scripts/cloud/build-offline-tar.sh | 66 +++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 scripts/cloud/build-offline-tar.sh diff --git a/.github/workflows/cloud-release.yml b/.github/workflows/cloud-release.yml index e1309c71e08..03d9feaf915 100644 --- a/.github/workflows/cloud-release.yml +++ b/.github/workflows/cloud-release.yml @@ -45,11 +45,28 @@ jobs: uses: ./.github/workflows/cloud.yml with: push_image: true -<<<<<<< HEAD push_image_tag: ${{ github.event.release.tag_name }} build_from: ${{ github.event.release.tag_name }} secrets: inherit -======= - push_image_tag: ${{ env.TAG }} - build_from: ${{ env.TAG }} ->>>>>>> 73be102a (Release ci (#26)) + + release-offline-tar: + needs: + - release-cloud + runs-on: ubuntu:latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build + run: export CLOUD_VERSION=${{ github.event.release.tag_name }} && bash ./scripts/cloud/build-offline-tar.sh + - name: Setup ossutil + uses: manyuanrong/setup-ossutil@v2.0 + with: + endpoint: ${{ secrets.OSS_ENDPOINT }} + access-key-id: ${{ secrets.OSS_ACCESS_KEY_ID }} + access-key-secret: ${{ secrets.OSS_ACCESS_KEY_SECRET }} + - name: Cat md5sum + run: cat ./sealos-cloud.tar.gz.md5 + - name: Upload + run: | + ossutil cp ./sealos-cloud.tar.gz oss://${{ secrets.OSS_BUCKET }}/cloud/sealos-cloud-${{ github.event.release.tag_name }}.tar.gz + ossutil cp ./sealos-cloud.tar.gz.md5 oss://${{ secrets.OSS_BUCKET }}/cloud/sealos-cloud-${{ github.event.release.tag_name }}.tar.gz.md5 \ No newline at end of file diff --git a/.github/workflows/cloud.yml b/.github/workflows/cloud.yml index 44828b485d0..c6e2cd4f11c 100644 --- a/.github/workflows/cloud.yml +++ b/.github/workflows/cloud.yml @@ -1,10 +1,6 @@ name: Build Cloud Cluster image on: - workflow_run: - workflows: [ "Build Controllers image", "Build Frontend Image" ] - types: - - completed workflow_call: inputs: push_image: diff --git a/scripts/cloud/build-offline-tar.sh b/scripts/cloud/build-offline-tar.sh new file mode 100644 index 00000000000..d368a53c75a --- /dev/null +++ b/scripts/cloud/build-offline-tar.sh @@ -0,0 +1,66 @@ +#!/bin/bash +set -x + +CLOUD_VERSION="latest" + +# pull and save images +mkdir -p output/tars + +images=( + docker.io/labring/sealos-cloud:$CLOUD_VERSION + docker.io/labring/kubernetes:v1.25.6 + docker.io/labring/helm:v3.12.0 + docker.io/labring/cilium:v1.12.14 + docker.io/labring/cert-manager:v1.8.0 + docker.io/labring/openebs:v3.4.0 + docker.io/labring/kubernetes-reflector:v7.0.151 + docker.io/labring/ingress-nginx:v1.5.1 + docker.io/labring/kubeblocks:v0.6.4 + docker.io/labring/metrics-server:v0.6.4 +) + +for image in "${images[@]}"; do + sealos pull "$image" + filename=$(echo "$image" | cut -d':' -f1 | tr / -) + if [[ ! -f "output/tars/${filename}.tar" ]]; then + sealos save -o "output/tars/${filename}.tar" "$image" + fi +done + + +# get and save cli +mkdir -p output/cli + +VERSION="v4.3.5" + +wget https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz \ + && tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos output/cli + +# get and save install scripts +echo " +#!/bin/bash +bash scripts/load-images.sh +bash scripts/install.sh --cloud-version=$CLOUD_VERSION + +" > output/install.sh + +mkdir -p output/scripts + +echo ' +#!/bin/bash + +for file in tars/*.tar; do + sealos load -i $file +done + +cp cli/sealos /usr/local/bin +' > output/scripts/load-images.sh + +curl -sfL https://raw.githubusercontent.com/labring/sealos/${CLOUD_VERSION}/scripts/cloud/install.sh -o output/scripts/install.sh + +# tar output to a tar.gz +mv output sealos-cloud +tar czfv sealos-cloud.tar.gz sealos-cloud + +# md5sum output tar.gz +md5sum sealos-cloud.tar.gz | cut -d " " -f1 > sealos-cloud.tar.gz.md5 \ No newline at end of file