Skip to content

Commit

Permalink
feat: update Sepolia deployment workflow for isolated environment setup
Browse files Browse the repository at this point in the history
- Updated `sepolia.deploy` workflow to ensure proper isolation using `--project-name sepolia`.
- Integrated `.env.sepolia` file for environment-specific variables.
- Added commands to stop existing Sepolia services before deployment for a clean setup.
- Ensured Docker Compose builds and deploys Sepolia services with no conflicts.
- Included verification step to list running services after deployment.

This change ensures Sepolia services run independently without interfering with other environments (e.g., Mainnet).
  • Loading branch information
ametel01 committed Dec 4, 2024
1 parent 761153b commit c8e6076
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,17 @@ jobs:
docker --version || { echo "Docker not found"; exit 1; }
docker-compose --version || { echo "Docker Compose not found"; exit 1; }
# Build and run the Docker Compose services
docker-compose down
docker-compose build --no-cache
docker-compose up -d
# Stop existing services
docker-compose --project-name mainnet down
docker-compose --project-name sepolia down
# Build and deploy Mainnet
docker-compose --env-file .env.mainnet --project-name mainnet build --no-cache
docker-compose --env-file .env.mainnet --project-name mainnet up -d
# Build and deploy Sepolia
docker-compose --env-file .env.sepolia --project-name sepolia build --no-cache
docker-compose --env-file .env.sepolia --project-name sepolia up -d
# Verify running services
docker ps
33 changes: 10 additions & 23 deletions .github/workflows/deploy.sepolia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,43 +12,30 @@ jobs:
steps:
- name: SSH into Remote Server and Deploy Changes
uses: appleboy/[email protected]
env:
SEPOLIA_DB_STRING: ${{ secrets.SEPOLIA_DB_STRING }}
SEPOLIA_NODE_STRING: ${{ secrets.SEPOLIA_NODE_STRING }}
SEPOLIA_ROUTER_ENDPOINT: ${{ secrets.SEPOLIA_ROUTER_ENDPOINT }}
SEPOLIA_POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
SEPOLIA_POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
SEPOLIA_POSTGRES_DB: ${{ secrets.SEPOLIA_POSTGRES_DB }}
with:
host: ec2-3-87-142-202.compute-1.amazonaws.com
username: ubuntu
key: ${{ secrets.SSH_PRIVATE_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
port: 22
envs: SEPOLIA_DB_STRING,SEPOLIA_NODE_STRING,SEPOLIA_ROUTER_ENDPOINT,SEPOLIA_POSTGRES_USER,SEPOLIA_POSTGRES_PASSWORD,SEPOLIA_POSTGRES_DB
script: |
# Navigate to the project directory
cd ~/fossil-headers-db
# Pull the latest changes from the sepolia branch
# Pull the latest changes from the sepolia-db branch
git fetch origin sepolia-db
git reset --hard origin/sepolia-db
# Create or update .env file with the environment variables
cat > .env << EOL
SEPOLIA_DB_STRING=${SEPOLIA_DB_STRING}
SEPOLIA_NODE_STRING=${SEPOLIA_NODE_STRING}
SEPOLIA_ROUTER_ENDPOINT=${SEPOLIA_ROUTER_ENDPOINT}
SEPOLIA_POSTGRES_USER=${SEPOLIA_POSTGRES_USER}
SEPOLIA_POSTGRES_PASSWORD=${SEPOLIA_POSTGRES_PASSWORD}
SEPOLIA_POSTGRES_DB=${SEPOLIA_POSTGRES_DB}
EOL
# Ensure Docker and Docker Compose are installed
docker --version || { echo "Docker not found"; exit 1; }
docker-compose --version || { echo "Docker Compose not found"; exit 1; }
# Build and run the Docker Compose services for Sepolia
docker-compose -f docker-compose.sepolia.yml down
docker-compose -f docker-compose.sepolia.yml build --no-cache
docker-compose -f docker-compose.sepolia.yml up -d
# Stop any existing Sepolia services
docker-compose --project-name sepolia down
# Build and deploy Sepolia services
docker-compose --env-file .env.sepolia --project-name sepolia build --no-cache
docker-compose --env-file .env.sepolia --project-name sepolia up -d
# Verify running services
docker ps
10 changes: 5 additions & 5 deletions docker-compose.mainnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ services:
dockerfile: Dockerfile.update
context: .
ports:
- "8081:8080"
- "8081:8080" # Mainnet-specific port
networks:
- mainnet_network
environment:
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING_BACKUP}
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING}
- NODE_CONNECTION_STRING=${NODE_CONNECTION_STRING}
- ROUTER_ENDPOINT=${ROUTER_ENDPOINT}
- RUST_LOG=info
Expand All @@ -25,7 +25,7 @@ services:
networks:
- mainnet_network
environment:
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING_BACKUP}
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING}
- NODE_CONNECTION_STRING=${NODE_CONNECTION_STRING}
- ROUTER_ENDPOINT=${ROUTER_ENDPOINT}
- RUST_LOG=info
Expand All @@ -41,7 +41,7 @@ services:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
ports:
- "5432:5432"
- "5432:5432" # Mainnet-specific port
networks:
- mainnet_network
healthcheck:
Expand All @@ -53,4 +53,4 @@ services:
networks:
mainnet_network:
volumes:
db_mainnet_data:
db_mainnet_data:
24 changes: 12 additions & 12 deletions docker-compose.sepolia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ services:
dockerfile: Dockerfile.update
context: .
ports:
- "8082:8080"
- "8082:8080" # Sepolia-specific port
networks:
- sepolia_network
environment:
- DB_CONNECTION_STRING=${SEPOLIA_DB_STRING}
- NODE_CONNECTION_STRING=${SEPOLIA_NODE_STRING}
- ROUTER_ENDPOINT=${SEPOLIA_ROUTER_ENDPOINT}
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING}
- NODE_CONNECTION_STRING=${NODE_CONNECTION_STRING}
- ROUTER_ENDPOINT=${ROUTER_ENDPOINT}
- RUST_LOG=info
depends_on:
db:
Expand All @@ -25,9 +25,9 @@ services:
networks:
- sepolia_network
environment:
- DB_CONNECTION_STRING=${SEPOLIA_DB_STRING}
- NODE_CONNECTION_STRING=${SEPOLIA_NODE_STRING}
- ROUTER_ENDPOINT=${SEPOLIA_ROUTER_ENDPOINT}
- DB_CONNECTION_STRING=${DB_CONNECTION_STRING}
- NODE_CONNECTION_STRING=${NODE_CONNECTION_STRING}
- ROUTER_ENDPOINT=${ROUTER_ENDPOINT}
- RUST_LOG=info
- INTERVAL=${FIX_INTERVAL:-300}
depends_on:
Expand All @@ -37,15 +37,15 @@ services:
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=${SEPOLIA_POSTGRES_USER}
- POSTGRES_PASSWORD=${SEPOLIA_POSTGRES_PASSWORD}
- POSTGRES_DB=${SEPOLIA_POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
ports:
- "5432:5432"
- "5433:5432" # Sepolia-specific port
networks:
- sepolia_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${SEPOLIA_POSTGRES_USER}"]
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 5s
timeout: 5s
retries: 5
Expand Down

0 comments on commit c8e6076

Please sign in to comment.