From e42c329adf14d0120ae9b3b096d5060f08a6ca8e Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Wed, 3 Jul 2024 22:01:32 +0200 Subject: [PATCH] [Beta] Add deployment workflow for beta environment (#2595) * feat: Add deployment workflow for beta environment This commit adds a new GitHub Actions workflow file, deploy-beta.yml, which is responsible for deploying the application to the beta environment. The workflow is triggered on push and pull request events. It checks if the repository is 'pagefaultgames/pokerogue' before running the deployment steps. The deployment includes checking out the code, setting up the Node.js environment, installing dependencies, building the application, setting up SSH for secure communication, deploying the build on the server using rsync, and purging the Cloudflare cache. The deployment is only performed when the push event is triggered on the default branch. It also changes the deploy.yml workflow to be triggered only when a release is generated. * feat: Update deployment workflow for beta environment * Update deploy-beta name * chore: Update deploy-beta.yml to use 'f-fsantos:beta-environment' as the ref name * chore: Update deploy-beta.yml to use 'f-fsantos:beta-environment' as the ref name * chore: Update deploy-beta.yml to use '2595/merge' as the ref name * chore: Update deploy-beta.yml to include event name in deployment message * chore: Update deploy-beta.yml to use 'pull_request' event and '2595/merge' as the ref name * chore: Update deploy-beta.yml to include SSH public key * chore: Update deploy-beta.yml to include SSH public key --------- Co-authored-by: Temps Ray --- .env.beta | 3 +++ .env.production | 3 +++ .github/workflows/deploy-beta.yml | 33 +++++++++++++++++++++++++++++++ package.json | 1 + src/utils.ts | 3 +-- 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 .env.beta create mode 100644 .env.production create mode 100644 .github/workflows/deploy-beta.yml diff --git a/.env.beta b/.env.beta new file mode 100644 index 000000000000..8d1e93b32772 --- /dev/null +++ b/.env.beta @@ -0,0 +1,3 @@ +VITE_BYPASS_LOGIN=0 +VITE_BYPASS_TUTORIAL=0 +VITE_SERVER_URL=https://api.beta.pokerogue.net \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 000000000000..74818d41a12a --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ +VITE_BYPASS_LOGIN=0 +VITE_BYPASS_TUTORIAL=0 +VITE_SERVER_URL=https://api.pokerogue.net \ No newline at end of file diff --git a/.github/workflows/deploy-beta.yml b/.github/workflows/deploy-beta.yml new file mode 100644 index 000000000000..d954d9bb8657 --- /dev/null +++ b/.github/workflows/deploy-beta.yml @@ -0,0 +1,33 @@ +name: Deploy Beta + +on: + push: {} + pull_request: {} + +jobs: + deploy: + if: github.repository == 'pagefaultgames/pokerogue' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "20" + - name: Install dependencies + run: npm ci + - name: Build + run: npm run build:beta + env: + NODE_ENV: production + - name: Set up SSH + if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch + run: | + mkdir ~/.ssh + echo "${{ secrets.BETA_SSH_PUBLIC_KEY }}" > ~/.ssh/id_ed25519.pub + echo "${{ secrets.BETA_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/* + ssh-keyscan -H ${{ secrets.BETA_SSH_HOST }} >> ~/.ssh/known_hosts + - name: Deploy build on server + if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch + run: | + rsync --del --no-times --checksum -vrm dist/* ${{ secrets.BETA_SSH_USER }}@${{ secrets.BETA_SSH_HOST }}:${{ secrets.BETA_DESTINATION_DIR }} \ No newline at end of file diff --git a/package.json b/package.json index 29a956f19c6f..160ca965bc8a 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "start": "vite", "start:dev": "vite --mode development", "build": "vite build", + "build:beta": "vite build --mode beta", "preview": "vite preview", "test": "vitest run", "test:cov": "vitest run --coverage", diff --git a/src/utils.ts b/src/utils.ts index 5a67df314d2b..5aa558bae3af 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -288,8 +288,7 @@ export const isLocal = ( export const localServerUrl = import.meta.env.VITE_SERVER_URL ?? `http://${window.location.hostname}:${window.location.port+1}`; // Set the server URL based on whether it's local or not -export const serverUrl = isLocal ? localServerUrl : ""; -export const apiUrl = isLocal ? serverUrl : "https://api.pokerogue.net"; +export const apiUrl = localServerUrl ?? "https://api.pokerogue.net"; // used to disable api calls when isLocal is true and a server is not found export let isLocalServerConnected = true;