-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5536708
commit 8a4e6dd
Showing
5 changed files
with
199 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
## Description | ||
|
||
## Test Plan | ||
|
||
<!-- What to do to make sure that the feature works? --> | ||
|
||
## Issues | ||
|
||
<!-- What issues are related to or will be closed by this PR? --> | ||
|
||
- Closes # | ||
|
||
<!-- ## Future Follow-Up --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-action.json | ||
--- | ||
name: Setup Node.js and pnpm | ||
|
||
description: Sets up Node.js and pnpm + pnpm cache. Does **not** install dependencies. | ||
|
||
runs: | ||
using: composite | ||
|
||
steps: | ||
- name: Setup Node.js environment | ||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4 | ||
with: | ||
node-version: lts/hydrogen | ||
|
||
- name: Install pnpm | ||
uses: pnpm/action-setup@v2 | ||
with: | ||
version: 8 | ||
run_install: false | ||
|
||
- name: Get pnpm store directory | ||
id: pnpm-cache | ||
shell: bash | ||
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | ||
|
||
- name: Setup pnpm cache | ||
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3 | ||
with: | ||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: ${{ runner.os }}-pnpm-store- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json | ||
--- | ||
name: Deploy to production | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
permissions: | ||
id-token: write | ||
contents: read | ||
deployments: write | ||
pull-requests: write | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} | ||
DATABASE_URL: ${{ secrets.PROD_DB_URL }} | ||
MIGRATION_DB_URL: ${{ secrets.MIGRATION_DB_URL }} | ||
|
||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
|
||
environment: | ||
name: production | ||
url: https://zotmeet.com | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Node.js and pnpm | ||
uses: ./.github/actions/setup-node-and-pnpm | ||
|
||
- name: Install dependencies | ||
run: pnpm install --frozen-lockfile | ||
|
||
- name: Deploy ZotMeet to production | ||
run: STAGE=prod pnpm db:migrate && pnpm sst deploy --stage prod |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json | ||
--- | ||
name: Deploy to staging | ||
|
||
on: | ||
pull_request: | ||
types: | ||
- opened | ||
- synchronize | ||
- unlabeled | ||
|
||
permissions: | ||
id-token: write | ||
contents: read | ||
deployments: write | ||
pull-requests: write | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} | ||
DATABASE_URL: ${{ secrets.DEV_DB_URL }} | ||
PR_NUM: ${{ github.event.pull_request.number }} | ||
MIGRATION_DB_URL: ${{ secrets.MIGRATION_DB_URL }} | ||
|
||
jobs: | ||
deploy: | ||
if: (!contains(github.event.pull_request.labels.*.name, 'no deploy')) | ||
|
||
runs-on: ubuntu-latest | ||
|
||
environment: | ||
name: staging-${{ github.event.pull_request.number }} | ||
url: https://staging-${{ github.event.pull_request.number }}.zotmeet.com | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Node.js and pnpm | ||
uses: ./.github/actions/setup-node-and-pnpm | ||
|
||
- name: Install dependencies | ||
run: pnpm install --frozen-lockfile | ||
|
||
- name: Deploy ZotMeet to staging | ||
run: pnpm db:migrate && pnpm sst deploy --stage staging-$PR_NUM |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json | ||
--- | ||
name: Destroy staging build | ||
|
||
on: | ||
pull_request: | ||
types: | ||
- closed | ||
- labeled | ||
|
||
permissions: | ||
id-token: write | ||
contents: read | ||
deployments: write | ||
pull-requests: write | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
CERTIFICATE_ARN: ${{ secrets.CERTIFICATE_ARN }} | ||
DATABASE_URL: ${{ secrets.DEV_DB_URL }} | ||
PR_NUM: ${{ github.event.pull_request.number }} | ||
|
||
jobs: | ||
destroy: | ||
if: (github.event.action == 'labeled' && github.event.label.name == 'no deploy') || github.event.action == 'closed' | ||
|
||
runs-on: ubuntu-latest | ||
|
||
environment: | ||
name: staging-${{ github.event.pull_request.number }} | ||
url: https://staging-${{ github.event.pull_request.number }}.zotmeet.com | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Node.js and pnpm | ||
uses: ./.github/actions/setup-node-and-pnpm | ||
|
||
- name: Install dependencies | ||
run: pnpm install --frozen-lockfile | ||
|
||
- name: Destroy ZotMeet staging build | ||
run: pnpm sst remove --stage staging-$PR_NUM | ||
|
||
- name: Set ZotMeet staging environment to inactive | ||
uses: strumwolf/[email protected] | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
environment: staging-${{ github.event.pull_request.number }} | ||
onlyDeactivateDeployments: true |