From 657a374ded75e634a45d51ee40445732ca1d4af3 Mon Sep 17 00:00:00 2001 From: Jianbo Sun Date: Tue, 12 Jul 2022 12:31:05 +0800 Subject: [PATCH] Fix: add the job of independently publishing chart packages (#4360) (#4361) * Fix: add the job of independently publishing chart packages Signed-off-by: barnettZQG * Fix: add the job of independently publishing chart packages Signed-off-by: barnettZQG Co-authored-by: barnettZQG --- .github/workflows/chart.yaml | 89 ++++++++++++++++++++++++++++++++++ .github/workflows/registry.yml | 87 --------------------------------- 2 files changed, 89 insertions(+), 87 deletions(-) create mode 100644 .github/workflows/chart.yaml diff --git a/.github/workflows/chart.yaml b/.github/workflows/chart.yaml new file mode 100644 index 000000000..c618a6d19 --- /dev/null +++ b/.github/workflows/chart.yaml @@ -0,0 +1,89 @@ +name: Publish Chart + +on: + push: + tags: + - "v*" + workflow_dispatch: { } + +env: + BUCKET: ${{ secrets.OSS_BUCKET }} + ENDPOINT: ${{ secrets.OSS_ENDPOINT }} + ACCESS_KEY: ${{ secrets.OSS_ACCESS_KEY }} + ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }} + ARTIFACT_HUB_REPOSITORY_ID: ${{ secrets.ARTIFACT_HUB_REPOSITORY_ID }} + +jobs: + publish-charts: + env: + HELM_CHARTS_DIR: charts + HELM_CHART: charts/vela-core + MINIMAL_HELM_CHART: charts/vela-minimal + LEGACY_HELM_CHART: legacy/charts/vela-core-legacy + VELA_ROLLOUT_HELM_CHART: runtime/rollout/charts + LOCAL_OSS_DIRECTORY: .oss/ + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@master + - name: Get git revision + id: vars + shell: bash + run: | + echo "::set-output name=git_revision::$(git rev-parse --short HEAD)" + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.0 + - name: Setup node + uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Generate helm doc + run: | + make helm-doc-gen + - name: Prepare legacy chart + run: | + rsync -r $LEGACY_HELM_CHART $HELM_CHARTS_DIR + rsync -r $HELM_CHART/* $LEGACY_HELM_CHART --exclude=Chart.yaml --exclude=crds + - name: Prepare vela chart + run: | + rsync -r $VELA_ROLLOUT_HELM_CHART $HELM_CHARTS_DIR + - name: Get the version + id: get_version + run: | + VERSION=${GITHUB_REF#refs/tags/} + echo ::set-output name=VERSION::${VERSION} + - name: Tag helm chart image + run: | + image_tag=${{ steps.get_version.outputs.VERSION }} + chart_version=${{ steps.get_version.outputs.VERSION }} + sed -i "s/latest/${image_tag}/g" $HELM_CHART/values.yaml + sed -i "s/latest/${image_tag}/g" $MINIMAL_HELM_CHART/values.yaml + sed -i "s/latest/${image_tag}/g" $LEGACY_HELM_CHART/values.yaml + sed -i "s/latest/${image_tag}/g" $VELA_ROLLOUT_HELM_CHART/values.yaml + chart_smever=${chart_version#"v"} + sed -i "s/0.1.0/$chart_smever/g" $HELM_CHART/Chart.yaml + sed -i "s/0.1.0/$chart_smever/g" $MINIMAL_HELM_CHART/Chart.yaml + sed -i "s/0.1.0/$chart_smever/g" $LEGACY_HELM_CHART/Chart.yaml + sed -i "s/0.1.0/$chart_smever/g" $VELA_ROLLOUT_HELM_CHART/Chart.yaml + - name: Install ossutil + run: wget http://gosspublic.alicdn.com/ossutil/1.7.0/ossutil64 && chmod +x ossutil64 && mv ossutil64 ossutil + - name: Configure Alibaba Cloud OSSUTIL + run: ./ossutil --config-file .ossutilconfig config -i ${ACCESS_KEY} -k ${ACCESS_KEY_SECRET} -e ${ENDPOINT} -c .ossutilconfig + - name: sync cloud to local + run: ./ossutil --config-file .ossutilconfig sync oss://$BUCKET/core $LOCAL_OSS_DIRECTORY + - name: add artifacthub stuff to the repo + run: | + rsync $HELM_CHART/README.md $LEGACY_HELM_CHART/README.md + rsync $HELM_CHART/README.md $VELA_ROLLOUT_HELM_CHART/README.md + sed -i "s/ARTIFACT_HUB_REPOSITORY_ID/$ARTIFACT_HUB_REPOSITORY_ID/g" hack/artifacthub/artifacthub-repo.yml + rsync hack/artifacthub/artifacthub-repo.yml $LOCAL_OSS_DIRECTORY + - name: Package helm charts + run: | + helm package $HELM_CHART --destination $LOCAL_OSS_DIRECTORY + helm package $MINIMAL_HELM_CHART --destination $LOCAL_OSS_DIRECTORY + helm package $LEGACY_HELM_CHART --destination $LOCAL_OSS_DIRECTORY + helm package $VELA_ROLLOUT_HELM_CHART --destination $LOCAL_OSS_DIRECTORY + helm repo index --url https://$BUCKET.$ENDPOINT/core $LOCAL_OSS_DIRECTORY + - name: sync local to cloud + run: ./ossutil --config-file .ossutilconfig sync $LOCAL_OSS_DIRECTORY oss://$BUCKET/core -f \ No newline at end of file diff --git a/.github/workflows/registry.yml b/.github/workflows/registry.yml index 49fc0f6e5..036e195f0 100644 --- a/.github/workflows/registry.yml +++ b/.github/workflows/registry.yml @@ -8,11 +8,8 @@ on: workflow_dispatch: {} env: - BUCKET: ${{ secrets.OSS_BUCKET }} - ENDPOINT: ${{ secrets.OSS_ENDPOINT }} ACCESS_KEY: ${{ secrets.OSS_ACCESS_KEY }} ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }} - ARTIFACT_HUB_REPOSITORY_ID: ${{ secrets.ARTIFACT_HUB_REPOSITORY_ID }} jobs: publish-core-images: @@ -171,90 +168,6 @@ jobs: ghcr.io/${{ github.repository_owner }}/oamdev/vela-rollout:${{ steps.get_version.outputs.VERSION }} ${{ secrets.ACR_DOMAIN }}/oamdev/vela-rollout:${{ steps.get_version.outputs.VERSION }} - publish-charts: - env: - HELM_CHARTS_DIR: charts - HELM_CHART: charts/vela-core - MINIMAL_HELM_CHART: charts/vela-minimal - LEGACY_HELM_CHART: legacy/charts/vela-core-legacy - VELA_ROLLOUT_HELM_CHART: runtime/rollout/charts - LOCAL_OSS_DIRECTORY: .oss/ - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@master - - name: Get git revision - id: vars - shell: bash - run: | - echo "::set-output name=git_revision::$(git rev-parse --short HEAD)" - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.4.0 - - name: Setup node - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: Generate helm doc - run: | - make helm-doc-gen - - name: Prepare legacy chart - run: | - rsync -r $LEGACY_HELM_CHART $HELM_CHARTS_DIR - rsync -r $HELM_CHART/* $LEGACY_HELM_CHART --exclude=Chart.yaml --exclude=crds - - name: Prepare vela chart - run: | - rsync -r $VELA_ROLLOUT_HELM_CHART $HELM_CHARTS_DIR - - uses: oprypin/find-latest-tag@v1 - with: - repository: oam-dev/kubevela - releases-only: true - id: latest_tag - - name: Tag helm chart image - run: | - latest_repo_tag=${{ steps.latest_tag.outputs.tag }} - sub="." - major="$(cut -d"$sub" -f1 <<<"$latest_repo_tag")" - minor="$(cut -d"$sub" -f2 <<<"$latest_repo_tag")" - patch="0" - current_repo_tag="$major.$minor.$patch" - image_tag=${GITHUB_REF#refs/tags/} - chart_version=$latest_repo_tag - if [[ ${GITHUB_REF} == "refs/heads/master" ]]; then - image_tag=latest - chart_version=${current_repo_tag}-nightly-build - fi - sed -i "s/latest/${image_tag}/g" $HELM_CHART/values.yaml - sed -i "s/latest/${image_tag}/g" $MINIMAL_HELM_CHART/values.yaml - sed -i "s/latest/${image_tag}/g" $LEGACY_HELM_CHART/values.yaml - sed -i "s/latest/${image_tag}/g" $VELA_ROLLOUT_HELM_CHART/values.yaml - chart_smever=${chart_version#"v"} - sed -i "s/0.1.0/$chart_smever/g" $HELM_CHART/Chart.yaml - sed -i "s/0.1.0/$chart_smever/g" $MINIMAL_HELM_CHART/Chart.yaml - sed -i "s/0.1.0/$chart_smever/g" $LEGACY_HELM_CHART/Chart.yaml - sed -i "s/0.1.0/$chart_smever/g" $VELA_ROLLOUT_HELM_CHART/Chart.yaml - - name: Install ossutil - run: wget http://gosspublic.alicdn.com/ossutil/1.7.0/ossutil64 && chmod +x ossutil64 && mv ossutil64 ossutil - - name: Configure Alibaba Cloud OSSUTIL - run: ./ossutil --config-file .ossutilconfig config -i ${ACCESS_KEY} -k ${ACCESS_KEY_SECRET} -e ${ENDPOINT} -c .ossutilconfig - - name: sync cloud to local - run: ./ossutil --config-file .ossutilconfig sync oss://$BUCKET/core $LOCAL_OSS_DIRECTORY - - name: add artifacthub stuff to the repo - run: | - rsync $HELM_CHART/README.md $LEGACY_HELM_CHART/README.md - rsync $HELM_CHART/README.md $VELA_ROLLOUT_HELM_CHART/README.md - sed -i "s/ARTIFACT_HUB_REPOSITORY_ID/$ARTIFACT_HUB_REPOSITORY_ID/g" hack/artifacthub/artifacthub-repo.yml - rsync hack/artifacthub/artifacthub-repo.yml $LOCAL_OSS_DIRECTORY - - name: Package helm charts - run: | - helm package $HELM_CHART --destination $LOCAL_OSS_DIRECTORY - helm package $MINIMAL_HELM_CHART --destination $LOCAL_OSS_DIRECTORY - helm package $LEGACY_HELM_CHART --destination $LOCAL_OSS_DIRECTORY - helm package $VELA_ROLLOUT_HELM_CHART --destination $LOCAL_OSS_DIRECTORY - helm repo index --url https://$BUCKET.$ENDPOINT/core $LOCAL_OSS_DIRECTORY - - name: sync local to cloud - run: ./ossutil --config-file .ossutilconfig sync $LOCAL_OSS_DIRECTORY oss://$BUCKET/core -f - publish-capabilities: env: CAPABILITY_BUCKET: kubevela-registry