Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4639c98
updates matrix to use main branch with network specific secrets
aaboyle878 Feb 25, 2025
22e042e
fixes punctuation
aaboyle878 Feb 25, 2025
b60ba57
updates workflow name
aaboyle878 Feb 25, 2025
e65eb07
fix: check proposal card visibility before validate filter
kneerose Mar 4, 2025
f817d44
fix: increase timeout of dRep form validation test
kneerose Mar 4, 2025
5882513
fix: increase timeout for various tests to improve stability
kneerose Mar 4, 2025
7514924
fix: remove test skip and fix self vote test
kneerose Mar 4, 2025
8a3d918
updates matrix to build packages for each network from staging and ma…
aaboyle878 Mar 4, 2025
00c83f4
fix: increase timeout for outcome response and metrics requests in tests
kneerose Mar 5, 2025
a7e043b
fix: update outcomeMetadata structure and adjust outcome details test
kneerose Mar 5, 2025
2cf020c
fix(#3134): calculating withdrawals when there are no rewards
MSzalowski Mar 5, 2025
68fa42b
Merge pull request #3136 from IntersectMBO/fix/3134-incorrect-delegat…
MSzalowski Mar 5, 2025
3b4891d
fix(#3108): hide voting threshold for cc in info type governance action
MSzalowski Mar 4, 2025
7530206
Merge pull request #3122 from IntersectMBO/fix/3108-hide-threshold-fo…
MSzalowski Mar 5, 2025
9c59a4c
adds support for triggering manually
aaboyle878 Mar 5, 2025
5280455
disables workflow from running
aaboyle878 Mar 5, 2025
dc55a82
removes commented out workflow trigger
aaboyle878 Mar 5, 2025
0b1c344
chore: update GovTool to v2.0.14
github-actions[bot] Mar 5, 2025
4284399
Merge pull request #3145 from IntersectMBO/chore/update-govtool-to-v2…
MSzalowski Mar 5, 2025
832ad7b
Merge pull request #3146 from IntersectMBO/develop
MSzalowski Mar 5, 2025
3510296
chore: upgate GovTool v2.0.14 release date
MSzalowski Mar 6, 2025
608710f
feat(#3137): add image tag feature for dreps in govtool metadata
MSzalowski Mar 6, 2025
e593146
Merge pull request #3153 from IntersectMBO/feat/3137-add-image-tag-fe…
MSzalowski Mar 6, 2025
2456f86
Merge branch 'develop' into chore/update-govtool-v2.0.14-release-date
MSzalowski Mar 6, 2025
f19a964
Merge pull request #3150 from IntersectMBO/chore/update-govtool-v2.0.…
MSzalowski Mar 6, 2025
36c3635
Merge pull request #3139 from IntersectMBO/fix/report-344-flaky-test
mesudip Mar 6, 2025
b6c405c
chore: move issue #3137 to GovTool - v2.0.14 in changelog
MSzalowski Mar 6, 2025
788cdb3
Merge pull request #3154 from IntersectMBO/chore/move-drep-image-tag-…
MSzalowski Mar 6, 2025
465d43c
Merge pull request #3156 from IntersectMBO/develop
MSzalowski Mar 6, 2025
f154c64
Merge pull request #3143 from IntersectMBO/feat/actions-workflow
aaboyle878 Mar 6, 2025
b13348d
Merge pull request #3157 from IntersectMBO/develop
MSzalowski Mar 6, 2025
ddc28cd
chore: remove image.yml
MSzalowski Mar 6, 2025
8f24c03
Merge pull request #3147 from IntersectMBO/test
MSzalowski Mar 6, 2025
6198983
Merge pull request #3158 from IntersectMBO/chore/remove-image.yaml
MSzalowski Mar 6, 2025
0154ff5
Merge pull request #3159 from IntersectMBO/develop
aaboyle878 Mar 6, 2025
7390066
Merge pull request #3160 from IntersectMBO/test
MSzalowski Mar 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
310 changes: 310 additions & 0 deletions .github/workflows/build-from-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
name: Check and Build Main

on:
push:
branches:
- main
- staging
workflow_dispatch:

permissions:
contents: write
pull-requests: write
packages: write

jobs:
check-build:
if: contains(fromJson('["main", "staging"]'), github.ref_name)
environment: ${{ matrix.network }}
strategy:
fail-fast: false
matrix:
include:
- branch: main
network: preview-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: main
network: preview-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: main
network: preview-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation
- branch: main
network: pre-prod-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: main
network: pre-prod-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: main
network: pre-prod-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation
- branch: main
network: prod-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: main
network: prod-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: main
network: prod-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation
- branch: staging
network: preview-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: staging
network: preview-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: staging
network: preview-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation
- branch: staging
network: pre-prod-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: staging
network: pre-prod-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: staging
network: pre-prod-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation
- branch: staging
network: prod-govtool
workdir: ./govtool/backend
name: govtool-backend
dockerfile: ./govtool/backend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-backend
qovery_container_name: govtool-backend
- branch: staging
network: prod-govtool
workdir: ./govtool/frontend
name: govtool-frontend
dockerfile: ./govtool/frontend/Dockerfile.qovery
image: ghcr.io/${{ github.repository }}-frontend
qovery_container_name: govtool-frontend
- branch: staging
network: prod-govtool
workdir: ./govtool/metadata-validation
name: govtool-metadata-validation
dockerfile: ./govtool/metadata-validation/Dockerfile
image: ghcr.io/${{ github.repository }}-metadata-validation
qovery_container_name: govtool-metadata-validation


runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Ensure Job Runs Only for Matching Branch
if: github.ref_name != matrix.branch
run: |
echo "Branch mismatch, exiting..."
exit 0

- name: Set TAG Environment Variable
id: set_tag
run: |
SANITIZED_BRANCH=$(echo "${{ github.ref_name }}" | tr '/' '-')
if [ "${{ github.ref_name }}" = "main" ]; then
echo "TAG=${{ github.sha }}-${{ github.run_number }}" >> $GITHUB_ENV
else
echo "TAG=${SANITIZED_BRANCH}-${{ github.sha }}-${{ github.run_number }}" >> $GITHUB_ENV
fi
echo "Generated TAG: $TAG"


- name: Lint Dockerfile
id: hadolint
uses: hadolint/hadolint-action@v3.1.0
with:
failure-threshold: error
format: json
dockerfile: ${{ matrix.dockerfile }}
# output-file: hadolint_output.json

- name: Save Hadolint output
id: save_hadolint_output
if: always()
run: cd ${{ matrix.workdir }} && echo "$HADOLINT_RESULTS" | jq '.' > hadolint_output.json

- name: Print Dockerfile lint output
run: |
cd ${{ matrix.workdir }}
echo "-----HADOLINT RESULT-----"
echo "Outcome: ${{ steps.hadolint.outcome }}"
echo "-----DETAILS--------"
cat hadolint_output.json
echo "--------------------"

- name: Code lint
id: code_lint
run: |
cd ${{ matrix.workdir }}
if [ ! -f lint.sh ]; then
echo "lint skipped" | tee code_lint_output.txt
exit 0
fi
set -o pipefail
sudo chmod +x lint.sh && ./lint.sh 2>&1 | tee code_lint_output.txt

- name: Unit tests
id: unit_tests
run: |
cd ${{ matrix.workdir }}
if [ ! -f unit-test.sh ]; then
echo "unit tests skipped" | tee code_lint_output.txt
exit 0
fi
set -o pipefail
sudo chmod +x unit-test.sh && ./unit-test.sh 2>&1 | tee unit_test_output.txt

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-

- id: image_lowercase
uses: ASzc/change-string-case-action@v6
with:
string: ${{ matrix.image }}

- name: Set ENVIRONMENT Variable
run: echo "ENVIRONMENT=${{ matrix.network }}" >> $GITHUB_ENV

- name: Sanitize Network Name
run: |
CLEAN_NETWORK=$(echo "${{ matrix.network }}" | sed 's/-govtool$//')
echo "CLEAN_NETWORK=$CLEAN_NETWORK" >> $GITHUB_ENV

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: ${{ matrix.workdir }}
file: ${{ matrix.dockerfile }}
tags: ${{ steps.image_lowercase.outputs.lowercase }}-${{ env.CLEAN_NETWORK }}:${{ env.TAG }}
load: false
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
outputs: type=docker,dest=/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar
build-args: |
VITE_APP_ENV=${{ secrets.VITE_APP_ENV }}
VITE_BASE_URL=${{ secrets.VITE_BASE_URL }}
VITE_METADATA_API_URL=${{ secrets.VITE_METADATA_API_URL }}
VITE_GTM_ID=${{ secrets.VITE_GTM_ID }}
VITE_NETWORK_FLAG=${{ secrets.VITE_NETWORK_FLAG }}
VITE_SENTRY_DSN=${{ secrets.VITE_SENTRY_DSN }}
NPMRC_TOKEN=${{ secrets.NPMRC_TOKEN }}
VITE_USERSNAP_SPACE_API_KEY=${{ secrets.VITE_USERSNAP_SPACE_API_KEY }}
VITE_IS_PROPOSAL_DISCUSSION_FORUM_ENABLED=${{ secrets.VITE_IS_PROPOSAL_DISCUSSION_FORUM_ENABLED }}
VITE_IS_GOVERNANCE_OUTCOMES_PILLAR_ENABLED=${{ secrets.VITE_IS_GOVERNANCE_OUTCOMES_PILLAR_ENABLED }}
VITE_OUTCOMES_API_URL=${{secrets.VITE_OUTCOMES_API_URL}}
VITE_PDF_API_URL=${{ secrets.VITE_PDF_API_URL }}
VITE_IPFS_GATEWAY=${{ secrets.IPFS_GATEWAY }}
VITE_IPFS_PROJECT_ID=${{ secrets.IPFS_PROJECT_ID }}
IPFS_GATEWAY=${{ secrets.IPFS_GATEWAY }}
IPFS_PROJECT_ID=${{ secrets.IPFS_PROJECT_ID }}

- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Scan Docker image with Dockle
id: dockle
run: |
wget -q https://github.com/goodwithtech/dockle/releases/download/v0.4.14/dockle_0.4.14_Linux-64bit.tar.gz
tar zxf dockle_0.4.14_Linux-64bit.tar.gz
sudo mv dockle /usr/local/bin

dockle --exit-code 1 --exit-level fatal --format json -ak GHC_RELEASE_KEY -ak CABAL_INSTALL_RELEASE_KEY -ak STACK_RELEASE_KEY -ak KEY_SHA512 --input '/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar' --output ${{ matrix.workdir }}/dockle_scan_output.json
echo " dockle exited w/ $?"
cat ${{ matrix.workdir }}/dockle_scan_output.json

echo "outcome=success" >> $GITHUB_OUTPUT

- name: Debug TAG Before Docker Push
run: |
echo "Lowercase Image: ${{ steps.image_lowercase.outputs.lowercase }}"
echo "Network: ${{ matrix.network }}"
echo "TAG: ${{ env.TAG }}"
echo "Final Docker Tag: ${{ steps.image_lowercase.outputs.lowercase }}-${{ matrix.network}}:${{ env.TAG }}"

- name: Push Docker image to GHCR
run: |
docker load -i '/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar'
rm -rf '/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar'
docker push ${{ steps.image_lowercase.outputs.lowercase }}-${{ env.CLEAN_NETWORK}}:${{ env.TAG }}

- name: Add tag as a PR comment
uses: ubie-oss/comment-to-merged-pr-action@v0.3.3
id: comment-to-merged-pr
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
message: |-
This PR is in the tag: ${{ env.TAG }} , for ${{ matrix.name }} service
7 changes: 1 addition & 6 deletions .github/workflows/merge.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
name: Check,Build,Deploy

on:
push:
branches:
- develop
- test
- staging
- main
workflow_dispatch

permissions:
contents: write
Expand Down
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,23 @@ changes.

### Removed

## [v2.0.13](https://github.com/IntersectMBO/govtool/releases/tag/v2.0.13) 2025-02-27
## [v2.0.14](https://github.com/IntersectMBO/govtool/releases/tag/v2.0.14) 2025-03-06

### Added

- Add image tag for DRep in GovTool metadata [Issue 3137](https://github.com/IntersectMBO/govtool/issues/3137)

### Fixed

- Fix calculating withdrawals when rewards records are empty for a given stake key [Issue 3134](https://github.com/IntersectMBO/govtool/issues/3134)

### Changed

### Removed

- Remove ratification threshold for Info Action for Consitutional Committee [Issue 3108](https://github.com/IntersectMBO/govtool/issues/3108)

## [v2.0.13](https://github.com/IntersectMBO/govtool/releases/tag/v2.0.13) 2025-02-27

### Added

Expand Down
2 changes: 1 addition & 1 deletion govtool/backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ FROM $BASE_IMAGE_REPO:$BASE_IMAGE_TAG
WORKDIR /src
COPY . .
RUN cabal build
RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.13/x/vva-be/build/vva-be/vva-be /usr/local/bin
RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.14/x/vva-be/build/vva-be/vva-be /usr/local/bin
2 changes: 1 addition & 1 deletion govtool/backend/Dockerfile.qovery
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM $BASE_IMAGE_REPO:$BASE_IMAGE_TAG
WORKDIR /src
COPY . .
RUN cabal build
RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.13/x/vva-be/build/vva-be/vva-be /usr/local/bin
RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.14/x/vva-be/build/vva-be/vva-be /usr/local/bin

# Expose the necessary port
EXPOSE 9876
Expand Down
10 changes: 9 additions & 1 deletion govtool/backend/sql/get-stake-key-voting-power.sql
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,15 @@ Withdrawal AS (
w.addr_id
)
SELECT
(COALESCE(rr.amount, 0) + COALESCE(r.amount, 0) + COALESCE(b.amount, 0) - COALESCE(w.withdrawal_amount, 0)) AS total_balance,
(COALESCE(rr.amount, 0) + COALESCE(r.amount, 0) + COALESCE(b.amount, 0) -
-- records in rewards tables might be missing for some epochs
-- so we need to check if the sum of rewards is greater than the sum of withdrawals before subtracting
CASE
WHEN COALESCE(rr.amount, 0) + COALESCE(r.amount, 0) > COALESCE(w.withdrawal_amount, 0)
THEN COALESCE(w.withdrawal_amount, 0)
ELSE 0
END
) AS total_balance,
b.addr_raw::text AS stake_address
FROM
Balance b
Expand Down
2 changes: 1 addition & 1 deletion govtool/backend/vva-be.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.6
name: vva-be
version: 2.0.13
version: 2.0.14

-- A short (one-line) description of the package.
-- synopsis:
Expand Down
Loading