You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
name: Create/Delete Branch for Pull Request
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- synchronize
|
|
- closed
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
|
jobs:
|
|
setup:
|
|
name: Setup
|
|
outputs:
|
|
branch: ${{ steps.branch_name.outputs.current_branch }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get branch name
|
|
id: branch_name
|
|
uses: tj-actions/branch-names@v8
|
|
|
|
create_neon_branch:
|
|
name: Create Neon Branch
|
|
outputs:
|
|
db_url: ${{ steps.create_neon_branch_encode.outputs.db_url }}
|
|
db_url_with_pooler: ${{ steps.create_neon_branch_encode.outputs.db_url_with_pooler }}
|
|
needs: setup
|
|
if: |
|
|
github.event_name == 'pull_request' && (
|
|
github.event.action == 'synchronize'
|
|
|| github.event.action == 'opened'
|
|
|| github.event.action == 'reopened')
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Create Neon Branch
|
|
id: create_neon_branch
|
|
uses: neondatabase/create-branch-action@v5
|
|
with:
|
|
project_id: ${{ vars.NEON_PROJECT_ID }}
|
|
branch_name: preview/pr-${{ github.event.number }}-${{ needs.setup.outputs.branch }}
|
|
api_key: ${{ secrets.NEON_API_KEY }}
|
|
|
|
# The step above creates a new Neon branch.
|
|
# You may want to do something with the new branch, such as run migrations, run tests
|
|
# on it, or send the connection details to a hosting platform environment.
|
|
# The branch DATABASE_URL is available to you via:
|
|
# "${{ steps.create_neon_branch.outputs.db_url_with_pooler }}".
|
|
# It's important you don't log the DATABASE_URL as output as it contains a username and
|
|
# password for your database.
|
|
# For example, you can uncomment the lines below to run a database migration command:
|
|
# - name: Run Migrations
|
|
# run: npm run db:migrate
|
|
# env:
|
|
# # to use pooled connection
|
|
# DATABASE_URL: "${{ steps.create_neon_branch.outputs.db_url_with_pooler }}"
|
|
# # OR to use unpooled connection
|
|
# # DATABASE_URL: "${{ steps.create_neon_branch.outputs.db_url }}"
|
|
|
|
delete_neon_branch:
|
|
name: Delete Neon Branch
|
|
needs: setup
|
|
if: github.event_name == 'pull_request' && github.event.action == 'closed'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Delete Neon Branch
|
|
uses: neondatabase/delete-branch-action@v3
|
|
with:
|
|
project_id: ${{ vars.NEON_PROJECT_ID }}
|
|
branch: preview/pr-${{ github.event.number }}-${{ needs.setup.outputs.branch }}
|
|
api_key: ${{ secrets.NEON_API_KEY }}
|