From 33c55cc37babdcf87810e5b1b0d0d3b36886a981 Mon Sep 17 00:00:00 2001 From: wanwiset25 Date: Wed, 20 Aug 2025 14:22:07 +0400 Subject: [PATCH] devnet cicd selective deployment --- .github/workflows/ci.yml | 77 ++++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7136d0e0bf..1e5465128e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -100,39 +100,48 @@ jobs: echo "image_name=$image_name" echo "image_name=$image_name" >> "$GITHUB_OUTPUT" - # devnet_k8_apply: - # runs-on: ubuntu-latest - # if: github.ref == 'refs/heads/dev-upgrade' && !startsWith(github.ref, 'refs/tags/') - # needs: devnet_build_push - # steps: - # - uses: actions/checkout@v4 - # - name: Set up kubectl - # uses: azure/setup-kubectl@v4 - # with: - # version: 'v1.19.11' - # - name: Apply new image version to Kubernetes deployments - # run: | - # mkdir -p $HOME/.kube - # echo "${{ secrets.KUBE_CONFIG }}" | base64 --decode > $HOME/.kube/config - # chmod 600 $HOME/.kube/config - # git_hash=$(git rev-parse --short "$GITHUB_SHA") - # masternodes=$(kubectl get deployment -o json| jq -r '.items[] | select(.metadata.name | test("devnet")) | "\(.metadata.name)"') - # rpcs=$(kubectl get deployment -o json| jq -r '.items[] | select(.metadata.name | test("rpc")) | "\(.metadata.name)"') + devnet_k8_apply: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/dev-upgrade' && !startsWith(github.ref, 'refs/tags/') + needs: devnet_build_push + steps: + - uses: actions/checkout@v4 + - name: Set up kubectl + uses: azure/setup-kubectl@v4 + with: + version: 'v1.19.11' + - name: Apply new image version to Kubernetes deployments + run: | + mkdir -p $HOME/.kube + echo "${{ secrets.KUBE_CONFIG }}" | base64 --decode > $HOME/.kube/config + chmod 600 $HOME/.kube/config + git_hash=$(git rev-parse --short "$GITHUB_SHA") + masternodes=$(kubectl get deployment -o json| jq -r '.items[] | select(.metadata.name | test("devnet")) | "\(.metadata.name)"') + rpcs=$(kubectl get deployment -o json| jq -r '.items[] | select(.metadata.name | test("rpc")) | "\(.metadata.name)"') + echo "Masternodes: $masternodes" + echo "RPCs: $rpcs" - # while read -r name; do - # kubectl set image deployment/$name $name=xinfinorg/devnet:dev-upgrade-${git_hash} || true - # done <<< "$masternodes" - - # while read -r name; do - # kubectl set image deployment/$name $name=xinfinorg/devnet:dev-upgrade-${git_hash} || true - # done <<< "$rpcs" + skip_names=("devnet1" "devnet2" "devnet3" "devnet4" "devnet9" "devnet10" "devnet11" "devnet12" "devnetrpc" "devnetrpc2") + while read -r name; do + if [[ " ${skip_names[@]} " =~ " ${name} " ]]; then + echo "Skipping deployment: $name" + continue + fi + echo "Updating deployment: $name" + kubectl set image deployment/$name $name=xinfinorg/devnet:dev-upgrade-${git_hash} || true + done <<< "$masternodes" + + + while read -r name; do + kubectl set image deployment/$name $name=xinfinorg/devnet:dev-upgrade-${git_hash} || true + done <<< "$rpcs" - # devnet_send_notification: - # runs-on: ubuntu-latest - # needs: devnet_k8_apply - # if: github.ref == 'refs/heads/dev-upgrade' && !startsWith(github.ref, 'refs/tags/') - # steps: - # - uses: actions/checkout@v4 - # - name: Send deployment notification - # run: | - # curl --location --request POST "66.94.98.186:8080/deploy?environment=devnet&service=xdc&version=${GITHUB_SHA}" + devnet_send_notification: + runs-on: ubuntu-latest + needs: devnet_k8_apply + if: github.ref == 'refs/heads/dev-upgrade' && !startsWith(github.ref, 'refs/tags/') + steps: + - uses: actions/checkout@v4 + - name: Send deployment notification + run: | + curl --location --request POST "66.94.98.186:8080/deploy?environment=devnet&service=xdc&version=${GITHUB_SHA}"