Preview Apps

For more information about preview apps, see the Preview Apps Reference.

Use these Github Actions to set up automatic deployment of Preview Apps from Github to Tapitalee.

Best Practice: Subdomains for Preview Apps

It is recommended to give each preview app its own subdomain. This can be done by creating a SecureProxy and Route53 Zone in the parent app, which will be automatically shared with the child preview apps.

Set up TAPIT_TOKEN secret

This is required to authorize Tapitalee to work in a Github Action.

In Tapitalee create a Deploy Token

$ tapit create deploy_token description='github'

Copy the resulting toiken into a Github Secret under Settings > Secrets and variables > Actions > New Repository Secret.

Deploy Preview App

Creates a preview app for pull requests that gets automatically deployed when PRs are opened, updated, or reopened.

# .github/workflows/deploy-preview.yml

name: Deploy Preview App

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Create Preview app with Tapitalee
        uses: tapitalee/ghactions/create-preview@staging
        with:
          tapit-token: ${{ secrets.TAPIT_TOKEN }}
          preview_app_name: "myapp-pr-${{ github.event.pull_request.number }}"
          delete_in_days: 1
          domain: "pr-${{ github.event.pull_request.number }}.example.com"

      - name: Deploy with Tapitalee
        uses: tapitalee/ghactions/image-deploy@staging
        with:
          tapit-token: ${{ secrets.TAPIT_TOKEN }}
          app_name: "myapp-pr-${{ github.event.pull_request.number }}"

Delete Preview App

Automatically cleans up preview apps when pull requests are closed.

# .github/workflows/delete-preview.yml

name: Delete Preview App

on:
  pull_request:
    types: [closed]

jobs:
  delete:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Delete Preview app with Tapitalee
        uses: tapitalee/ghactions/delete-preview@staging
        with:
          tapit-token: ${{ secrets.TAPIT_TOKEN }}
          preview_app_name: "myapp-pr-${{ github.event.pull_request.number }}"

For more information about preview apps, including subdomain setup and add-on sharing, see the Preview Apps Reference.