diff --git a/.github/workflows/database-migration.yml b/.github/workflows/database-migration.yml new file mode 100644 index 0000000..c98eb67 --- /dev/null +++ b/.github/workflows/database-migration.yml @@ -0,0 +1,51 @@ +on: + push: + branches: + - master + # paths: + # - 'server/database/migrations/**' + pull_request: + branches: + - master + # paths: + # - 'server/database/migrations/**' + +jobs: + database-migration-staging: + name: Database migration (staging) + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + environment: production + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.17.0 + cache: 'npm' + - name: Install dependencies + run: npm ci + - name: Run database migration + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} + run: npm run db:migrate + database-migration-production: + name: Database migration (production) + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + environment: staging + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.17.0 + cache: 'npm' + - name: Install dependencies + run: npm ci + - name: Run database migration + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} + run: npm run db:migrate