diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7d1882ac3..fe32cb0a7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -71,6 +71,7 @@ jobs: echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ./.env echo "RESOLVER_SUPPORTED_ADDR_ENS_SUBDOMAINS=${{ vars.RESOLVER_SUPPORTED_ADDR_ENS_SUBDOMAINS }}" >> ./.env echo "RESOLVER_SUPPORTED_NAME_ENS_SUBDOMAINS=${{ vars.RESOLVER_SUPPORTED_NAME_ENS_SUBDOMAINS }}" >> ./.env + echo "PERSISTENCE_DIRECTORY=${{ vars.PERSISTENCE_DIRECTORY }}" >> ./.env envsubst '${TARGET_HOST} ${TARGET_IP}' < ./docker/nginx.conf > ./nginx.conf cat ./.env - name: Prepare docker build environment @@ -145,6 +146,13 @@ jobs: 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: Reset state of testing environment + run: | + if [ $environment_name == "testing" ]; then + ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\ + cd ${{ vars.PERSISTENCE_DIRECTORY }}/db && rm -r * || true; + cd ${{ vars.PERSISTENCE_DIRECTORY }}/storage && rm -r * || true" + fi - name: Configure Firewall run: | ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\ diff --git a/.github/workflows/resetStagingState.yml b/.github/workflows/resetStagingState.yml new file mode 100644 index 000000000..00f689f08 --- /dev/null +++ b/.github/workflows/resetStagingState.yml @@ -0,0 +1,23 @@ +name: deploy +on: workflow_dispatch + +jobs: + reset-staging-state: + environment: 'staging' + runs-on: ubuntu-latest + steps: + - name: Stop docker on server + run: | + ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN }} "\ + cd dm3 && docker compose down" + ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\ + systemctl restart docker.service" + - name: Reset state of staging environment + run: | + ssh -i ./ssh-key root@${{ vars.HOST_DOMAIN }} "\ + cd ${{ vars.PERSISTENCE_DIRECTORY }}/db && rm -r * || true; \ + cd ${{ vars.PERSISTENCE_DIRECTORY }}/storage && rm -r * || true" + - name: Start docker on server + run: | + ssh -i ./ssh-key app@${{ vars.HOST_DOMAIN }} "\ + cd dm3 && docker compose --env-file .env up -d && docker system prune -af" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 565157df3..af6ff07bb 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -40,7 +40,7 @@ services: image: redis restart: always volumes: - - /mnt/dm3_prod_volume/db/redis:/data + - ${PERSISTENCE_DIRECTORY}/db/redis:/data dm3-storage: image: postgres:13 @@ -51,7 +51,7 @@ services: POSTGRES_PASSWORD: prisma POSTGRES_DB: dm3 volumes: - - /mnt/dm3_prod_volume/storage/postgres:/var/lib/postgresql/data + - ${PERSISTENCE_DIRECTORY}/storage/postgres:/var/lib/postgresql/data delivery-service: image: dm3-delivery-service @@ -75,7 +75,7 @@ services: restart: always container_name: redis-delivery-service volumes: - - /mnt/dm3_prod_volume/db/redis-delivery-service:/data + - ${PERSISTENCE_DIRECTORY}/db/redis-delivery-service:/data offchain-resolver-db: image: postgres @@ -84,7 +84,7 @@ services: environment: POSTGRES_PASSWORD: example volumes: - - /mnt/dm3_prod_volume/db/postgres:/var/lib/postgresql/data + - ${PERSISTENCE_DIRECTORY}/db/postgres:/var/lib/postgresql/data offchain-resolver: image: dm3-offchain-resolver @@ -148,5 +148,5 @@ volumes: driver: local driver_opts: type: none - device: /mnt/dm3_prod_volume/webroot + device: ${PERSISTENCE_DIRECTORY}/webroot o: bind