Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d45c8ce
Merge pull request #2731 from IntersectMBO/staging
MSzalowski Jan 24, 2025
4929e39
Merge pull request #2735 from IntersectMBO/staging
MSzalowski Jan 24, 2025
f063c97
Merge pull request #2742 from IntersectMBO/staging
MSzalowski Jan 24, 2025
c972040
Merge pull request #2763 from IntersectMBO/staging
MSzalowski Jan 27, 2025
bfb0899
Merge pull request #2767 from IntersectMBO/staging
MSzalowski Jan 27, 2025
a76762f
Merge pull request #2772 from IntersectMBO/staging
MSzalowski Jan 27, 2025
017cae4
Merge pull request #2797 from IntersectMBO/staging
MSzalowski Jan 28, 2025
23c77a4
Merge pull request #2801 from IntersectMBO/staging
MSzalowski Jan 28, 2025
8dab8e0
Merge pull request #2810 from IntersectMBO/staging
MSzalowski Jan 29, 2025
2ceb696
Merge pull request #2820 from IntersectMBO/staging
MSzalowski Jan 29, 2025
d1f6b88
Merge pull request #2845 from IntersectMBO/staging
MSzalowski Jan 30, 2025
40bfc2c
Merge pull request #2869 from IntersectMBO/staging
MSzalowski Jan 31, 2025
edc71a4
Merge pull request #2873 from IntersectMBO/staging
MSzalowski Jan 31, 2025
b17b0bd
Merge pull request #2884 from IntersectMBO/staging
MSzalowski Feb 3, 2025
026b486
Merge pull request #2903 from IntersectMBO/staging
MSzalowski Feb 4, 2025
d9c58b5
Merge pull request #2907 from IntersectMBO/staging
MSzalowski Feb 4, 2025
197b0eb
Merge pull request #2932 from IntersectMBO/staging
MSzalowski Feb 10, 2025
d176709
Merge pull request #2936 from IntersectMBO/staging
MSzalowski Feb 10, 2025
4b2ba70
Merge pull request #2963 from IntersectMBO/staging
MSzalowski Feb 12, 2025
d01b6a7
Merge pull request #2979 from IntersectMBO/staging
MSzalowski Feb 13, 2025
061a43d
Merge pull request #2983 from IntersectMBO/staging
MSzalowski Feb 13, 2025
10de6ac
Merge pull request #3001 from IntersectMBO/staging
MSzalowski Feb 14, 2025
eeb24f6
Merge pull request #3010 from IntersectMBO/staging
MSzalowski Feb 17, 2025
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
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/[email protected]
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/[email protected]
id: comment-to-merged-pr
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
message: |-
This PR is in the tag: ${{ env.TAG }} , for ${{ matrix.name }} service
Loading