Skip to content

๐Ÿ”‚ Preview website in surge.sh for every pull request.

License

Notifications You must be signed in to change notification settings

lxfu1/surge-preview

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace
ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Surge PR Preview

[CI status][github-action-url] [![david deps][david-image]][david-url] [![david devDeps][david-dev-image]][david-dev-url]

A GitHub action that preview website in surge.sh for your pull requests.

image

image

Pros

Compare to Netlify/Vercel?

  • It is free.
  • It supports multiple preview jobs.

Usage

Add a workflow (.github/workflows/preview.yml):

name: ๐Ÿ”‚ Surge PR Preview

on: [pull_request]

jobs:
  preview:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Get branch name (pull request)
        run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF})" >> $GITHUB_ENV
      - uses: lxfu1/surge-preview@v1
        id: preview_step
        with:
          surge_token: ${{ secrets.SURGE_TOKEN }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          project_branch: ${{ env.BRANCH_NAME }}
          build: |
            npm install
      - name: Get the preview_url
        run: echo "url => ${{ steps.preview_step.outputs.preview_url }}"

The preview website url will be https://{{repository.owner}}-{{repository.name}}-{{job.name}}-pr-{{pr.number}}.surge.sh.

Teardown

When a pull request is closed and teardown is set to 'true', then the surge instance will be destroyed.

name: ๐Ÿ”‚ Surge PR Preview

on:
  pull_request:
    # when using teardown: 'true', add default event types + closed event type
    types: [opened, synchronize, reopened, closed]
  push:

jobs:
  preview:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Get branch name (pull request)
        run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF})" >> $GITHUB_ENV
      - uses: lxfu1/surge-preview@v1
        with:
          surge_token: ${{ secrets.SURGE_TOKEN }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          project_branch: ${{ env.BRANCH_NAME }}
          teardown: 'true'
          build: |
            npm install

Inputs

  • surge_token: Getting your Surge token.
  • github_token: secrets.GITHUB_TOKEN.
  • failOnError: Set failed if a deployment throws error, defaults to false.
  • teardown: Determines if the preview instance will be torn down on PR close, defaults to false.

Outputs

  • preview_url: The url for the related PR preview

Thanks to

About

๐Ÿ”‚ Preview website in surge.sh for every pull request.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 70.5%
  • TypeScript 24.5%
  • HTML 2.2%
  • CSS 1.5%
  • Shell 1.3%