From ce8a28135c94e5d48ceb12539aed6eb653a13698 Mon Sep 17 00:00:00 2001 From: Rob Cannon Date: Wed, 20 Nov 2024 19:31:46 +0700 Subject: [PATCH] ci: add ci for update branch --- .github/workflows/push-bump-pydantic.yml | 131 ++++++++++++++++++ icon_governance/workers/crons/preps_iscore.py | 12 +- 2 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/push-bump-pydantic.yml diff --git a/.github/workflows/push-bump-pydantic.yml b/.github/workflows/push-bump-pydantic.yml new file mode 100644 index 0000000..c02fd0a --- /dev/null +++ b/.github/workflows/push-bump-pydantic.yml @@ -0,0 +1,131 @@ +name: push-bump-pydantic + +on: + push: + branches: + - bump-pydantic + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: bump-pydantic + + - name: Install deps + run: | + pip3 install -r requirements_api.txt -r requirements_worker.txt -r requirements_dev.txt + + - name: Bring up stack + run: make up-dbs && sleep 30 + + - name: Check stack + run: make ps + + - name: Run tests with coverage + run: make test-coverage + + docker: + runs-on: ubuntu-latest + needs: test + outputs: + tag: ${{ steps.source.outputs.TAG }} + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - id: last + uses: pozetroninc/github-action-get-latest-release@master + with: + repository: ${{ github.repository }} + + - name: Tag name + id: source + run: | + echo ::set-output name=TAG::${{ steps.last.outputs.release }}-${{ github.run_number }} + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push API + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + target: prod + push: true + build-args: | + SERVICE_NAME=api + tags: sudoblock/icon-governance-api:${{ steps.source.outputs.TAG }} + + - name: Build and push worker + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + target: prod + push: true + build-args: | + SERVICE_NAME=worker + tags: sudoblock/icon-governance-worker:${{ steps.source.outputs.TAG }} + + push_refs: + runs-on: ubuntu-latest + needs: docker + strategy: + max-parallel: 1 + matrix: + include: + + - cluster: cluster2 + network_name: mainnet + network_version: v2 +# - cluster: cluster2 +# network_name: lisbon +# network_version: v2 +# - cluster: cluster2 +# network_name: berlin +# network_version: v2 + + steps: + + - name: Checkout charts repo + uses: actions/checkout@v2 + with: + repository: sudoblockio/icon-charts + ref: main + path: charts + token: ${{ secrets.ICON_CHARTS_PAT }} + + - name: Update API ${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }} deployment values file + uses: fjogeleit/yaml-update-action@master + with: + workDir: charts + repository: sudoblockio/icon-charts + valueFile: 'deployments/${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }}/governance/tags.yaml' + propertyPath: 'api.image.tag' + value: ${{needs.docker.outputs.tag}} + branch: main + createPR: 'false' + updateFile: true + commitChange: false + + - name: Update worker ${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }} deployment values file + uses: fjogeleit/yaml-update-action@master + with: + workDir: charts + repository: sudoblockio/icon-charts + valueFile: 'deployments/${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }}/governance/tags.yaml' + propertyPath: 'worker.image.tag' + value: ${{needs.docker.outputs.tag}} + branch: main + createPR: 'false' + updateFile: true + message: "governance ${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }} deployment image version to ${{needs.docker.outputs.tag}}" + token: '${{ secrets.ICON_CHARTS_PAT }}' diff --git a/icon_governance/workers/crons/preps_iscore.py b/icon_governance/workers/crons/preps_iscore.py index 2adf80d..16f1238 100644 --- a/icon_governance/workers/crons/preps_iscore.py +++ b/icon_governance/workers/crons/preps_iscore.py @@ -19,7 +19,8 @@ def get_iscore_value(tx_hash): """Get rewards value and Tx from logs service.""" try: - response = get(f"{settings.LOGS_SERVICE_URL}/api/v1/logs?transaction_hash={tx_hash}") + response = get( + f"{settings.LOGS_SERVICE_URL}/api/v1/logs?transaction_hash={tx_hash}") except RequestException as e: logger.info(f"Exception in iscore - \n{e} - \n{tx_hash}") # TODO: Add backoff - This should not happen generally @@ -48,7 +49,8 @@ def run_prep_iscore(session): logger.info(f"Starting {__name__} cron") count = ( - session.execute(select([func.count(Reward.address)]).where(Reward.value == None)) + session.execute( + select(func.count()).select_from(Reward).where(Reward.value.is_(None))) .scalars() .all() ) @@ -58,7 +60,11 @@ def run_prep_iscore(session): chunk_size = 10 for i in range(0, int(count[0] / chunk_size) + 1): rewards = ( - session.execute(select(Reward).where(Reward.value == None).limit(chunk_size)) + session.execute( + select(Reward) + .where(Reward.value.is_(None)) + .limit(chunk_size) + ) .scalars() .all() )