Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
104 changes: 104 additions & 0 deletions .github/workflows/pr-deploy-testnet.yml
Original file line number Diff line number Diff line change
@@ -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
80 changes: 1 addition & 79 deletions .github/workflows/pr-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Loading