From 856a21a5ec5104985483a3cfbdfd445b938376d8 Mon Sep 17 00:00:00 2001 From: Somefive Date: Wed, 21 Jun 2023 14:12:06 +0800 Subject: [PATCH] Fix: update chart ci Signed-off-by: Somefive --- .github/workflows/build-chart.yml | 109 ------------------------------ .github/workflows/build-image.yml | 54 +++++++++++++++ .github/workflows/chart.yml | 48 +++++++++++++ chart/Chart.yaml | 4 +- chart/values.yaml | 2 +- 5 files changed, 105 insertions(+), 112 deletions(-) delete mode 100644 .github/workflows/build-chart.yml create mode 100644 .github/workflows/build-image.yml create mode 100644 .github/workflows/chart.yml diff --git a/.github/workflows/build-chart.yml b/.github/workflows/build-chart.yml deleted file mode 100644 index 396faf30..00000000 --- a/.github/workflows/build-chart.yml +++ /dev/null @@ -1,109 +0,0 @@ -name: Chart -on: - push: - branches: - - master - tags: - - "v*" - workflow_dispatch: {} - -env: - BUCKET: kubevelacharts - ENDPOINT: oss-cn-hangzhou.aliyuncs.com - ACCESS_KEY: ${{ secrets.OSS_ACCESS_KEY }} - ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }} - HELM_CHART: chart - LOCAL_OSS_DIRECTORY: .oss/ - -jobs: - chart-build: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@master - - name: Get the version - id: get_version - run: | - tag=${GITHUB_REF#refs/tags/} - VERSION=${tag#"v"} - if [[ ${GITHUB_REF} == "refs/heads/master" ]]; then - VERSION=latest - fi - echo ::set-output name=VERSION::${VERSION} - - name: Get git revision - id: vars - shell: bash - run: | - echo "::set-output name=git_revision::$(git rev-parse --short HEAD)" - - - name: Login docker.io - uses: docker/login-action@v1 - with: - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 - with: - driver-opts: image=moby/buildkit:master - - - uses: docker/build-push-action@v2 - name: Build & Pushing terraform controller for Dockerhub - with: - context: . - file: Dockerfile - labels: |- - org.opencontainers.image.source=https://github.com/${{ github.repository }} - org.opencontainers.image.revision=${{ github.sha }} - platforms: linux/amd64 - push: ${{ github.event_name != 'pull_request' }} - build-args: | - GITVERSION=git-${{ steps.vars.outputs.git_revision }} - VERSION=${{ steps.get_version.outputs.VERSION }} - GOPROXY=https://proxy.golang.org - tags: |- - docker.io/oamdev/terraform-controller:${{ steps.get_version.outputs.VERSION }} - - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.4.0 - - uses: oprypin/find-latest-tag@v1 - with: - repository: oam-dev/terraform-controller - 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" - tag=${GITHUB_REF#refs/tags/} - image_tag=${tag#"v"} - 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/0.2.8/${image_tag}/g" $HELM_CHART/Makefile - chart_smever=${chart_version#"v"} - sed -i "s/0.2.8/$chart_smever/g" $HELM_CHART/Chart.yaml - sed -i "s/0.2.8/${image_tag}/g" $HELM_CHART/values.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 cp oss://$BUCKET/addons/index.yaml $LOCAL_OSS_DIRECTORY -f - - - name: Package helm charts - run: | - helm package $HELM_CHART --destination $LOCAL_OSS_DIRECTORY - helm repo index --url https://charts.kubevela.net/addons $LOCAL_OSS_DIRECTORY/ --merge $LOCAL_OSS_DIRECTORY/index.yaml - - - name: sync local to cloud - run: ./ossutil --config-file .ossutilconfig sync $LOCAL_OSS_DIRECTORY oss://$BUCKET/addons -f diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml new file mode 100644 index 00000000..5cabdae9 --- /dev/null +++ b/.github/workflows/build-image.yml @@ -0,0 +1,54 @@ +name: BuildImage + +on: + push: + tags: + - 'v*' + workflow_dispatch: { } + +jobs: + build-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + oamdev/terraform-controller + ghcr.io/kubevela/oamdev/terraform-controller + tags: | + type=ref,event=tag + type=raw,value=latest,enable={{is_default_branch}} + - name: Login docker.io + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + platforms: linux/amd64,linux/arm64 + file: ./Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file diff --git a/.github/workflows/chart.yml b/.github/workflows/chart.yml new file mode 100644 index 00000000..50d99bbc --- /dev/null +++ b/.github/workflows/chart.yml @@ -0,0 +1,48 @@ +name: HelmChart +on: + push: + tags: + - "v*" + workflow_dispatch: {} + +jobs: + publish-charts: + env: + HELM_CHART: chart/ + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.0 + - name: Get the version + id: get_version + run: | + VERSION=${GITHUB_REF#refs/tags/} + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT + - 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 + chart_semver=${chart_version#"v"} + sed -i "s/0.1.0/$chart_semver/g" $HELM_CHART/Chart.yaml + - uses: jnwng/github-app-installation-token-action@v2 + id: get_app_token + with: + appId: 340472 + installationId: 38064967 + privateKey: ${{ secrets.GH_KUBEVELA_APP_PRIVATE_KEY }} + - name: Sync Chart Repo + run: | + git config --global user.email "135009839+kubevela[bot]@users.noreply.github.com" + git config --global user.name "kubevela[bot]" + git clone https://x-access-token:${{ steps.get_app_token.outputs.token }}@github.com/kubevela/charts.git kubevela-charts + helm package $HELM_CHART --destination ./kubevela-charts/docs/ + helm repo index --url https://kubevela.github.io/charts ./kubevela-charts/docs/ + cd kubevela-charts/ + git add docs/ + chart_version=${GITHUB_REF#refs/tags/} + git commit -m "update terraform-controller chart ${chart_version}" + git push https://x-access-token:${{ steps.get_app_token.outputs.token }}@github.com/kubevela/charts.git \ No newline at end of file diff --git a/chart/Chart.yaml b/chart/Chart.yaml index abcc6c86..d6a74299 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: terraform-controller -version: 0.2.8 +version: 0.1.0 description: A Kubernetes Terraform controller home: https://github.com/oam-dev/terraform-controller -appVersion: "0.3.3" +appVersion: 0.1.0 diff --git a/chart/values.yaml b/chart/values.yaml index 92a6b9b7..243a9e60 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -2,7 +2,7 @@ replicaCount: 1 image: repository: oamdev/terraform-controller - tag: 0.2.8 + tag: latest pullPolicy: Always gitImage: alpine/git:latest