diff --git a/.github/workflows/pr-deploy-testnet.yml b/.github/workflows/pr-deploy-testnet.yml new file mode 100644 index 0000000..3e6df3d --- /dev/null +++ b/.github/workflows/pr-deploy-testnet.yml @@ -0,0 +1,104 @@ +name: fair-value-deploy-testnet + +on: + pull_request: + types: [labeled] + branches: + - master + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + lint: + if: github.event_name == 'workflow_dispatch' || github.event.label.name == 'deploy-testnet' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: latest + + build-and-deploy: + needs: lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Get Short Commit Hash + run: | + COMMIT_HASH=$(git rev-parse --short HEAD) + echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_ENV + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Build and push to AWS ECR + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: commit-hash-${{ env.COMMIT_HASH }} + run: | + docker build -f build/Dockerfile-fairValueFeeder -t ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG} . + docker push ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG} + echo "Pushed image to AWS ECR:" + echo " ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG}" + + - name: Checkout lumina-infra repository + env: + LUMINA_INFRA_PAT: ${{ secrets.LUMINA_INFRA_PAT }} + run: | + rm -rf lumina-infra + git clone -q https://$LUMINA_INFRA_PAT@github.com/diadata-org/lumina-infra lumina-infra + + - name: Update AWS testnet feeder values and push to lumina-infra + env: + LUMINA_INFRA_PAT: ${{ secrets.LUMINA_INFRA_PAT }} + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + run: | + cd lumina-infra + + git config user.name "DIA Lumina Bot" + git config user.email "infrastructure@diadata.org" + + FEEDERS="301-fair-value-feeder-testnet-aws 302-fair-value-feeder-testnet-aws 303-fair-value-feeder-testnet-aws 304-fair-value-feeder-testnet-aws 305-fair-value-feeder-testnet-aws" + for feeder in $FEEDERS; do + VALUES_FILE="helmcharts/fair-value-feeders-aws/${feeder}/values.yaml" + if [ -f "$VALUES_FILE" ]; then + echo "Updating $VALUES_FILE" + sed -i "s|image: [^,]*|image: ${ECR_REGISTRY}/lumina/fair-value|" "$VALUES_FILE" + sed -i "s|tag: [^}]*|tag: commit-hash-${{ env.COMMIT_HASH }}|" "$VALUES_FILE" + fi + done + + echo "Changes to be committed:" + git diff helmcharts/fair-value-feeders-aws/*/values.yaml + + if ! git diff --quiet; then + git add helmcharts/fair-value-feeders-aws/*/values.yaml + git commit -m "Deploy fair-value feeders to testnet (commit-hash-${{ env.COMMIT_HASH }})" + git push https://$LUMINA_INFRA_PAT@github.com/diadata-org/lumina-infra.git HEAD:master + echo "Pushed updates to lumina-infra. ArgoCD will sync fair-value feeders automatically." + else + echo "No changes to commit" + fi + + - name: Cleanup cloned repository + run: | + rm -rf lumina-infra diff --git a/.github/workflows/pr-pipeline.yml b/.github/workflows/pr-pipeline.yml index f402644..c64fcf6 100644 --- a/.github/workflows/pr-pipeline.yml +++ b/.github/workflows/pr-pipeline.yml @@ -11,16 +11,10 @@ on: permissions: contents: read - packages: write - -env: - ACTIONS_STEP_DEBUG: ${{ secrets.ACTIONS_STEP_DEBUG }} jobs: - push_image_and_deploy: + lint: runs-on: ubuntu-latest - environment: - name: dia-testspace steps: - uses: actions/checkout@v4 @@ -33,75 +27,3 @@ jobs: uses: golangci/golangci-lint-action@v6 with: version: latest - - - name: Get Short Commit Hash - run: | - COMMIT_HASH=$(git rev-parse --short HEAD) - echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_ENV - - - name: Checkout lumina-infra repository - env: - LUMINA_INFRA_PAT: ${{ secrets.LUMINA_INFRA_PAT }} - run: | - rm -rf lumina-infra - git clone -q https://$LUMINA_INFRA_PAT@github.com/diadata-org/lumina-infra lumina-infra - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: eu-west-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 - - - name: Build and push to AWS ECR - env: - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} - IMAGE_TAG: commit-hash-${{ env.COMMIT_HASH }} - run: | - docker build -f build/Dockerfile-fairValueFeeder -t ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG} . - docker push ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG} - echo "Pushed image to AWS ECR:" - echo " ${ECR_REGISTRY}/lumina/fair-value:${IMAGE_TAG}" - - - name: Update AWS testnet feeder values and push to lumina-infra - env: - LUMINA_INFRA_PAT: ${{ secrets.LUMINA_INFRA_PAT }} - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} - run: | - cd lumina-infra - - git config user.name "DIA Lumina Bot" - git config user.email "infrastructure@diadata.org" - - # Update image registry and tag for fair-value feeders - FEEDERS="301-fair-value-feeder-testnet-aws 302-fair-value-feeder-testnet-aws 303-fair-value-feeder-testnet-aws 304-fair-value-feeder-testnet-aws 305-fair-value-feeder-testnet-aws" - for feeder in $FEEDERS; do - VALUES_FILE="helmcharts/fair-value-feeders-aws/${feeder}/values.yaml" - if [ -f "$VALUES_FILE" ]; then - echo "Updating $VALUES_FILE" - sed -i "s|image: [^,]*|image: ${ECR_REGISTRY}/lumina/fair-value|" "$VALUES_FILE" - sed -i "s|tag: [^}]*|tag: commit-hash-${{ env.COMMIT_HASH }}|" "$VALUES_FILE" - fi - done - - echo "Changes to be committed:" - git diff helmcharts/fair-value-feeders-aws/*/values.yaml - - if ! git diff --quiet; then - git add helmcharts/fair-value-feeders-aws/*/values.yaml - git commit -m "PR #${{ github.event.pull_request.number }}: Update fair-value feeders to commit-hash-${{ env.COMMIT_HASH }}" - git push https://$LUMINA_INFRA_PAT@github.com/diadata-org/lumina-infra.git HEAD:master - echo "Pushed updates to lumina-infra. ArgoCD will sync fair-value feeders automatically." - else - echo "No changes to commit" - fi - - cd .. - - - name: Cleanup cloned repository - run: | - rm -rf lumina-infra