Skip to content

Commit

Permalink
Merge pull request #1041 from dm3-org/feature/unifyCI
Browse files Browse the repository at this point in the history
Feature/unify ci
  • Loading branch information
malteish authored Jun 25, 2024
2 parents 59f21dc + 8b01692 commit b050ba1
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 414 deletions.
48 changes: 25 additions & 23 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ on:
branches:
- testing
- develop
- main

jobs:
messenger-web-deploy:
environment: ${{ github.ref == 'refs/heads/develop' && 'staging' || 'testing' }}
environment: ${{ github.ref_name == 'main' && 'prod' || (github.ref == 'develop' && 'staging' || 'testing') }}
runs-on: ubuntu-latest
env:
environment_name: ${{ github.ref == 'refs/heads/develop' && 'staging' || 'testing' }}
environment_name: ${{ github.ref_name == 'main' && 'prod' || (github.ref == 'develop' && 'staging' || 'testing') }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
Expand All @@ -35,16 +36,17 @@ jobs:
chmod 600 ./ssh-key
- name: Create .env file
env:
TARGET_HOST: ${{ vars.HOST_DOMAIN}}
TARGET_HOST: ${{ vars.HOST_DOMAIN }}
TARGET_IP: ${{ vars.HOST_IP }}
run: |
echo "REACT_APP_ADDR_ENS_SUBDOMAIN=${{ secrets.ADDR_ENS_SUBDOMAIN}}" >> ./.env.react
echo "REACT_APP_BACKEND=https://${{ vars.HOST_DOMAIN}}/api" >> ./.env.react
echo "REACT_APP_DEFAULT_DELIVERY_SERVICE=${{ secrets.DEFAULT_DELIVERY_SERVICE}}" >> ./.env.react
echo "REACT_APP_DEFAULT_SERVICE=https://${{ vars.HOST_DOMAIN}}/api" >> ./.env.react
echo "REACT_APP_ADDR_ENS_SUBDOMAIN=${{ vars.ADDR_ENS_SUBDOMAIN }}" >> ./.env.react
echo "REACT_APP_BACKEND=https://${{ vars.HOST_DOMAIN }}/api" >> ./.env.react
echo "REACT_APP_DEFAULT_DELIVERY_SERVICE=${{ vars.DEFAULT_DELIVERY_SERVICE}}" >> ./.env.react
echo "REACT_APP_DEFAULT_SERVICE=https://${{ vars.HOST_DOMAIN }}/api" >> ./.env.react
echo "REACT_APP_MAINNET_PROVIDER_RPC=${{ secrets.RPC }}" >> ./.env.react
echo "REACT_APP_PROFILE_BASE_URL=https://${{ vars.HOST_DOMAIN}}/api" >> ./.env.react
echo "REACT_APP_RESOLVER_BACKEND=https://${{ vars.HOST_DOMAIN}}/resolver-handler" >> ./.env.react
echo "REACT_APP_USER_ENS_SUBDOMAIN=${{ secrets.USER_ENS_SUBDOMAIN}}" >> ./.env.react
echo "REACT_APP_PROFILE_BASE_URL=https://${{ vars.HOST_DOMAIN }}/api" >> ./.env.react
echo "REACT_APP_RESOLVER_BACKEND=https://${{ vars.HOST_DOMAIN }}/resolver-handler" >> ./.env.react
echo "REACT_APP_USER_ENS_SUBDOMAIN=${{ vars.USER_ENS_SUBDOMAIN }}" >> ./.env.react
echo "REACT_APP_PUBLIC_VAPID_KEY=${{ secrets.REACT_APP_PUBLIC_VAPID_KEY}}" >> ./.env.react
echo "REACT_APP_WALLET_CONNECT_PROJECT_ID=${{ secrets.REACT_APP_WALLET_CONNECT_PROJECT_ID }}" >> ./.env.react
echo "REACT_APP_COMMIT_HASH=${{ env.sha_short }}" >> ./.env.react
Expand All @@ -55,18 +57,18 @@ jobs:
echo "REACT_APP_CHAIN_ID=${{ vars.CHAIN_ID }}" >> ./.env.react
echo "REACT_APP_GENOME_REGISTRY_ADDRESS=${{ vars.GENOME_REGISTRY_ADDRESS }}" >> ./.env.react
cat ./.env.react >> ./.env
echo "RESOLVER_ADDR=0x88c8cC822095cdE6F92c8d20311C8e7dE6A98694" >> ./.env
echo "RESOLVER_ADDR=${{ vars.ERC3668_RESOLVER_ADDRESS }}" >> ./.env
echo "SIGNING_PUBLIC_KEY=${{ secrets.SIGNING_PUBLIC_KEY }}" >> ./.env
echo "SIGNING_PRIVATE_KEY=${{ secrets.SIGNING_PRIVATE_KEY }}" >> ./.env
echo "SIGNER_PRIVATE_KEY=${{ secrets.SIGNER_PRIVATE_KEY }}" >> ./.env
echo "SPAM_PROTECTION=${{ secrets.SPAM_PROTECTION }}" >> ./.env
echo "ENCRYPTION_PUBLIC_KEY=${{ secrets.ENCRYPTION_PUBLIC_KEY }}" >> ./.env
echo "ENCRYPTION_PRIVATE_KEY=${{ secrets.ENCRYPTION_PRIVATE_KEY }}" >> ./.env
echo "RPC=${{ secrets.RPC }}" >> ./.env
echo "URL=${{ vars.HOST_DOMAIN}}" >> ./.env
echo "URL=${{ vars.HOST_DOMAIN }}" >> ./.env
echo "CERT_MAIL=${{ vars.CERT_MAIL }}" >> ./.env
echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ./.env
envsubst '${SSL_CERTIFICATE_BASE_LOC} ${TLS_CERTIFICATE_LOCATION} ${TARGET_HOST}' < ./docker/nginx.conf > ./nginx.conf
envsubst '${TARGET_HOST} ${TARGET_IP}' < ./docker/nginx.conf > ./nginx.conf
cat ./.env
- name: Prepare docker build environment
shell: bash
Expand Down Expand Up @@ -123,30 +125,30 @@ jobs:
docker save -o ./dm3-messenger-web.tar dm3-messenger-web:latest
- name: Send files to server
run: |
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\
rm /home/app/*.tar || true"
rsync -avz -e 'ssh -i ./ssh-key' ./.env app@${{ vars.HOST_DOMAIN}}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./dm3-*.tar app@${{ vars.HOST_DOMAIN}}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./nginx.conf app@${{ vars.HOST_DOMAIN}}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./docker/staging/docker-compose.yml app@${{ vars.HOST_DOMAIN}}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./.env app@${{ vars.HOST_DOMAIN }}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./dm3-*.tar app@${{ vars.HOST_DOMAIN }}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./nginx.conf app@${{ vars.HOST_DOMAIN }}:/home/app/dm3
rsync -avz -e 'ssh -i ./ssh-key' ./docker/docker-compose.yml app@${{ vars.HOST_DOMAIN }}:/home/app/dm3
- name: Stop docker on server
run: |
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN }} "\
cd dm3 && docker compose down"
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\
systemctl restart docker.service"
- name: Load docker images
run: |
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN }} "\
cd dm3 && ls |grep -E 'dm3-.*tar' | xargs --no-run-if-empty -L 1 docker load -i; \
rm dm3-*.tar || true"
- name: Configure Firewall
run: |
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\
ufw allow from 172.18.0.1/16 proto tcp to ${{ vars.HOST_IP}} port 80;
ufw allow from 172.18.0.1/16 proto tcp to ${{ secrets.IP_ADDRESS }} port 443;
ufw enable"
- name: Start docker on server
run: |
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN}} "\
ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN }} "\
cd dm3 && docker compose --env-file .env up -d && docker system prune -af"
118 changes: 0 additions & 118 deletions .github/workflows/production-deploy.yml

This file was deleted.

6 changes: 3 additions & 3 deletions docker/prod/docker-compose.yml → docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ services:
- web
- backend
- ccip-resolver
- delivery-service
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- web-root:/var/www/html
Expand Down Expand Up @@ -96,8 +97,6 @@ services:
RPC: ${RPC}
REACT_APP_ADDR_ENS_SUBDOMAIN: ${REACT_APP_ADDR_ENS_SUBDOMAIN}
LOG_LEVEL: 'debug'
stdin_open: true # docker run -i
tty: true # docker run -t

web:
image: dm3-messenger-web
Expand Down Expand Up @@ -136,12 +135,13 @@ services:
LOG_LEVEL: debug
CONFIG: |
{
"0xc9bf092673b3a066df088a2a911e23e9b69b82f2": {
"${RESOLVER_ADDRESS}": {
"type": "signing",
"handlerUrl": "http://offchain-resolver:8082"
}
}
PORT: 8181

volumes:
certbot-etc:
certbot-var:
Expand Down
125 changes: 0 additions & 125 deletions docker/prod/nginx.conf

This file was deleted.

Loading

0 comments on commit b050ba1

Please sign in to comment.