name: Workflow for prisma migrations on: workflow_call: inputs: PROD_PRISMA_SECRET_DB_PATH: required: true type: string description: Prisma db url secret path in vault for prod DEV_PRISMA_SECRET_DB_PATH: required: true type: string description: Prisma db url secret path in vault for dev secrets: VAULT_TOKEN: required: true jobs: migration: runs-on: ubuntu-latest container: image: catthehacker/ubuntu:act-22.04 steps: - name: Checkout repo uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 - name: Install dependencies run: npm install - name: Export secrets for prisma run: | if [ "${{ github.ref }}" = "refs/heads/main" ]; then echo "PRISMA_DB_SECRET_PATH=${{ inputs.PROD_PRISMA_SECRET_DB_PATH }}" >> $GITHUB_ENV else echo "PRISMA_DB_SECRET_PATH=${{ inputs.DEV_PRISMA_SECRET_DB_PATH }}" >> $GITHUB_ENV fi - name: Import prisma db url uses: hashicorp/vault-action@v2 with: url: https://vault.project-rent-dev.com token: ${{ secrets.VAULT_TOKEN }} secrets: | ${{ env.PRISMA_DB_SECRET_PATH }} | PRISMA_DB_URL; - name: Apply all pending migrations to the database run: npx prisma migrate deploy env: DATABASE_URL: ${{ env.PRISMA_DB_URL }}