Skip to content

Enhanced Challenge Status Updates with Real-time Feedback (#47) #62

Enhanced Challenge Status Updates with Real-time Feedback (#47)

Enhanced Challenge Status Updates with Real-time Feedback (#47) #62

name: Build and Deploy preproduction
env:
NODE_VERSION: '18'
SERVER_USER: 'w3reg'
SERVER_IP: '135.181.202.179'
DEPLOY_PATH: '/home/w3reg/staging.w3reg.org'
VITE_APP_WALLET_CONNECT_PROJECT_ID: w3reg
VITE_APP_DEFAULT_WS_URL: wss://people-paseo.dotters.network
VITE_APP_DEFAULT_WS_URL_RELAY: wss://paseo.dotters.network
VITE_APP_REGISTRAR_INDEX__PEOPLE_PASEO: 1
VITE_APP_AVAILABLE_CHAINS: paseo_people
VITE_APP_DEFAULT_CHAIN: paseo_people
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nix
uses: cachix/install-nix-action@v30
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Build the Vite app
env:
BUILD_TARGET: 'production'
run: |
curl -fsSL https://bun.sh/install | bash -s "canary"
export BUN_INSTALL="$HOME/.bun"
export PATH=$BUN_INSTALL/bin:$PATH
cat .env.example | grep -v "#" > .env
# our overrides will be appended last, so even duplicate, they'll take precedence
echo "VITE_APP_WALLET_CONNECT_PROJECT_ID=${{ env.VITE_APP_WALLET_CONNECT_PROJECT_ID }}" >> .env
echo "VITE_APP_DEFAULT_WS_URL=${{ env.VITE_APP_DEFAULT_WS_URL }}" >> .env
echo "VITE_APP_DEFAULT_WS_URL_RELAY=${{ env.VITE_APP_DEFAULT_WS_URL_RELAY }}" >> .env
echo "VITE_APP_REGISTRAR_INDEX__PEOPLE_PASEO=${{ env.VITE_APP_REGISTRAR_INDEX__PEOPLE_PASEO }}" >> .env
echo "VITE_APP_AVAILABLE_CHAINS=${{ env.VITE_APP_AVAILABLE_CHAINS }}" >> .env
echo "VITE_APP_DEFAULT_CHAIN=${{ env.VITE_APP_DEFAULT_CHAIN }}" >> .env
echo "VITE_APP_CHALLENGES_API_URL=${{ vars.WS_API_URL }}" >> .env
cat .env | wc -l
nix-shell --command "bash scripts/build.sh"
- name: Set up SSH agent
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Add SSH Key to Known Hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -t ed25519 ${{ env.SERVER_IP }} >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Deploy to server
run: |
set -euo pipefail
ssh ${{ env.SERVER_USER }}@${{ env.SERVER_IP }} << EOF
set -euo pipefail
rm -fr ${{ env.DEPLOY_PATH }}/nginx || true
rm -fr ${{ env.DEPLOY_PATH }}/dist || true
mkdir -p ${{ env.DEPLOY_PATH }}
EOF
scp -r ./nginx ${{ env.SERVER_USER }}@${{ env.SERVER_IP }}:${{ env.DEPLOY_PATH }}
scp -r ./dist ${{ env.SERVER_USER }}@${{ env.SERVER_IP }}:${{ env.DEPLOY_PATH }}
scp docker-compose.yaml ${{ env.SERVER_USER }}@${{ env.SERVER_IP }}:${{ env.DEPLOY_PATH }}/docker-compose.yaml
ssh ${{ env.SERVER_USER }}@${{ env.SERVER_IP }} << EOF
set -euo pipefail
cd ${{ env.DEPLOY_PATH }}
echo "NGINX_PORT=53999" > .env
docker compose up --build -d web-nginx
EOF