diff --git a/.github/workflows/bump-pydantic.yml b/.github/workflows/bump-pydantic.yml new file mode 100644 index 0000000..a720fa0 --- /dev/null +++ b/.github/workflows/bump-pydantic.yml @@ -0,0 +1,142 @@ +name: push-main + +on: + push: + branches: + - bump-pydantic + +jobs: + test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install deps + run: | + pip3 install -r requirements_api.txt -r requirements_worker.txt -r requirements_dev.txt + pip3 install --upgrade protobuf + + - 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 + + - uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml + fail_ci_if_error: true + + docker: + runs-on: ubuntu-22.04 + 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 + tags: sudoblock/icon-contracts-api:latest, sudoblock/icon-contracts-api:${{ steps.source.outputs.TAG }} + + - name: Build and push worker + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile.worker + target: prod + push: true + tags: sudoblock/icon-contracts-worker:latest, sudoblock/icon-contracts-worker:${{ steps.source.outputs.TAG }} + + push_refs: + runs-on: ubuntu-22.04 + 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 + + - cluster: cluster1 + network_name: mainnet + network_version: v2 + - cluster: cluster1 + network_name: lisbon + network_version: v2 + - cluster: cluster1 + 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 }}/contracts/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 }}/contracts/tags.yaml' + propertyPath: 'worker.image.tag' + value: ${{needs.docker.outputs.tag}} + branch: main + createPR: 'false' + updateFile: true + message: "contracts ${{ matrix.cluster }}/${{ matrix.network_name }}-${{ matrix.network_version }} deployment image version to ${{needs.docker.outputs.tag}}" + token: '${{ secrets.ICON_CHARTS_PAT }}' diff --git a/.github/workflows/push-main.yml b/.github/workflows/push-main.yml index 89c1903..840b794 100644 --- a/.github/workflows/push-main.yml +++ b/.github/workflows/push-main.yml @@ -93,6 +93,27 @@ jobs: network_name: lisbon network_version: v2 +# - cluster: cluster2 +# network_name: mainnet +# network_version: v2 +# - cluster: cluster2 +# network_name: lisbon +# network_version: v2 +# - cluster: cluster2 +# network_name: berlin +# network_version: v2 +# +# - cluster: cluster1 +# network_name: mainnet +# network_version: v2 +# - cluster: cluster1 +# network_name: lisbon +# network_version: v2 +# - cluster: cluster1 +# network_name: berlin +# network_version: v2 + + steps: - name: Checkout charts repo