diff --git a/.github/workflows/cleanup-preview.yml b/.github/workflows/cleanup-preview.yml index 6f482b1..e5bba75 100644 --- a/.github/workflows/cleanup-preview.yml +++ b/.github/workflows/cleanup-preview.yml @@ -11,12 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Delete Fly app - id: deploy uses: superfly/fly-pr-review-apps@1.2.0 - name: Delete Neon Branch uses: neondatabase/delete-branch-action@v3.1.3 with: - project_id: ${{ secrets.NEON_PROJECT_ID }} + project_id: ${{ var.NEON_PROJECT_ID }} branch: preview/pr-${{ github.event.number }}-${{ github.event.pull_request.head.ref }} api_key: ${{ secrets.NEON_API_KEY }} diff --git a/.github/workflows/deploy-preview.yml b/.github/workflows/deploy-preview.yml index c8ab9e7..d6d6f11 100644 --- a/.github/workflows/deploy-preview.yml +++ b/.github/workflows/deploy-preview.yml @@ -2,11 +2,9 @@ name: Preview Deployment on: [pull_request] env: - NEON_DATABASE_USERNAME: ${{ secrets.NEON_DATABASE_USERNAME }} # change this to your database username - GH_TOKEN: ${{ secrets.GH_TOKEN }} # Required for commenting on pull requests for private repos - NEON_API_KEY: ${{ secrets.NEON_API_KEY }} # You can generate a an API key in your account settings - NEON_PROJECT_ID: ${{ secrets.NEON_PROJECT_ID }} # You can find this in your project settings + NEON_PROJECT_ID: ${{ var.NEON_PROJECT_ID }} # You can find this in your Neon project settings FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} # You can generate a Fly API token in your account settings + GH_TOKEN: ${{ secrets.GH_TOKEN }} # Required for commenting on pull requests for private repos jobs: deploy-preview: @@ -21,41 +19,34 @@ jobs: - uses: pnpm/action-setup@v2 with: version: 8 - - name: Use Node.js 18 - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: node-version: 18 cache: "pnpm" - - name: Install dependencies - run: pnpm install - - name: Get branch name + - run: pnpm install + + - name: Get git branch name id: branch-name uses: tj-actions/branch-names@v8 - - name: Create Neon Branch - id: create-branch + - id: create-branch uses: neondatabase/create-branch-action@v4 with: project_id: ${{ env.NEON_PROJECT_ID }} # parent: dev # optional (defaults to your primary branch) branch_name: preview/pr-${{ github.event.number }}-${{ steps.branch-name.outputs.current_branch }} - username: ${{ env.NEON_DATABASE_USERNAME }} - api_key: ${{ env.NEON_API_KEY }} - - - name: Run Migrations - run: | - touch .env + api_key: ${{ secrets.NEON_API_KEY }} # Generate a an API key in your Neon account settings - echo DATABASE_URL=${{ steps.create-branch.outputs.db_url_with_pooler }}?sslmode=require >> .env + - run: | + echo "DATABASE_URL=${{ steps.create-branch.outputs.db_url_with_pooler }}?sslmode=require" >> "$GITHUB_ENV" - pnpm run db:migrate + - run: pnpm run db:migrate - - name: Deploy - id: deploy + - id: deploy uses: superfly/fly-pr-review-apps@1.2.0 with: - secrets: DATABASE_URL=${{ steps.create-branch.outputs.db_url }}?sslmode=require + secrets: DATABASE_URL=$DATABASE_URL - name: Comment on Pull Request uses: thollander/actions-comment-pull-request@v2 @@ -63,4 +54,4 @@ jobs: # GITHUB_TOKEN: ${{ env.GH_TOKEN }} # Required for commenting on pull requests for private repos message: | Fly Preview URL :balloon: : ${{ steps.deploy.outputs.url }} - Neon branch :elephant: : https://console.neon.tech/app/projects/${{ secrets.NEON_PROJECT_ID }}/branches/${{ steps.create-branch.outputs.branch_id }} + Neon branch :elephant: : https://console.neon.tech/app/projects/${{ env.NEON_PROJECT_ID }}/branches/${{ steps.create-branch.outputs.branch_id }} diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index fc6fa79..868ebe8 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -5,34 +5,27 @@ on: branches: - 'main' -env: - FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} - DATABASE_URL: ${{ secrets.DATABASE_URL }} - jobs: deploy-production: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 with: version: 8 - - - name: Use Node.js 18 - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: node-version: 18 cache: 'pnpm' - - name: Install dependencies - run: pnpm install - - - - name: Run Migrations - run: pnpm run db:migrate - + - run: pnpm install + - run: pnpm run db:migrate + env: # production database URL from secrets + DATABASE_URL: ${{ secrets.DATABASE_URL }} - uses: superfly/flyctl-actions/setup-flyctl@master - - run: flyctl deploy --remote-only \ No newline at end of file + - run: flyctl deploy --remote-only + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}