[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 <temps.ray@gmail.com>
This commit is contained in:
Frederico Santos 2024-07-03 22:01:32 +02:00 committed by GitHub
parent 34058a57ed
commit e42c329adf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 41 additions and 2 deletions

3
.env.beta Normal file
View File

@ -0,0 +1,3 @@
VITE_BYPASS_LOGIN=0
VITE_BYPASS_TUTORIAL=0
VITE_SERVER_URL=https://api.beta.pokerogue.net

3
.env.production Normal file
View File

@ -0,0 +1,3 @@
VITE_BYPASS_LOGIN=0
VITE_BYPASS_TUTORIAL=0
VITE_SERVER_URL=https://api.pokerogue.net

33
.github/workflows/deploy-beta.yml vendored Normal file
View File

@ -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 }}

View File

@ -7,6 +7,7 @@
"start": "vite", "start": "vite",
"start:dev": "vite --mode development", "start:dev": "vite --mode development",
"build": "vite build", "build": "vite build",
"build:beta": "vite build --mode beta",
"preview": "vite preview", "preview": "vite preview",
"test": "vitest run", "test": "vitest run",
"test:cov": "vitest run --coverage", "test:cov": "vitest run --coverage",

View File

@ -288,8 +288,7 @@ export const isLocal = (
export const localServerUrl = import.meta.env.VITE_SERVER_URL ?? `http://${window.location.hostname}:${window.location.port+1}`; 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 // Set the server URL based on whether it's local or not
export const serverUrl = isLocal ? localServerUrl : ""; export const apiUrl = localServerUrl ?? "https://api.pokerogue.net";
export const apiUrl = isLocal ? serverUrl : "https://api.pokerogue.net";
// used to disable api calls when isLocal is true and a server is not found // used to disable api calls when isLocal is true and a server is not found
export let isLocalServerConnected = true; export let isLocalServerConnected = true;