diff --git a/.github/workflows/preview-deploy.yml b/.github/workflows/preview-deploy.yml new file mode 100644 index 00000000..dd8036d2 --- /dev/null +++ b/.github/workflows/preview-deploy.yml @@ -0,0 +1,15 @@ +name: Preview Deployment + +on: workflow_dispatch + +jobs: + deploy: + permissions: + contents: read + + uses: ./.github/workflows/reusable-deploy-vercel.yml + + secrets: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml new file mode 100644 index 00000000..5092c128 --- /dev/null +++ b/.github/workflows/prod-deploy.yml @@ -0,0 +1,22 @@ +name: PROD Deployment + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + deploy: + permissions: + contents: read + + uses: ./.github/workflows/reusable-deploy-vercel.yml + + with: + PROD: true + + secrets: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/reusable-deploy-vercel.yml b/.github/workflows/reusable-deploy-vercel.yml new file mode 100644 index 00000000..fedd2584 --- /dev/null +++ b/.github/workflows/reusable-deploy-vercel.yml @@ -0,0 +1,44 @@ +name: Vercel Deployment (reusable) + +on: + workflow_call: + inputs: + PROD: + required: false + type: boolean + default: false + secrets: + VERCEL_ORG_ID: + required: true + VERCEL_PROJECT_ID: + required: true + VERCEL_TOKEN: + required: true + +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_ENVIRONMENT: ${{ inputs.PROD == true && 'production' || 'preview' }} + VERCEL_CLI_ENV_FLAG: ${{ inputs.PROD == true && '--prod' || '' }} + +jobs: + deploy: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install pnpm + run: npm install -g pnpm + + - name: Install Vercel CLI + run: npm install --global vercel@latest + + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=${{ env.VERCEL_ENVIRONMENT }} --token=${{ secrets.VERCEL_TOKEN }} + + - name: Build Project Artifacts + run: vercel build ${{ env.VERCEL_CLI_ENV_FLAG }} --token=${{ secrets.VERCEL_TOKEN }} + + - name: Deploy Project Artifacts to Vercel + run: vercel deploy ${{ env.VERCEL_CLI_ENV_FLAG }} --prebuilt --token=${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..7cfdc799 --- /dev/null +++ b/vercel.json @@ -0,0 +1,7 @@ +{ + "git": { + "deploymentEnabled": { + "main": false + } + } + } \ No newline at end of file