Preview Deployments with GitHub Actions

Automatically deploy your pull requests from GitHub to Codesphere without any maintenance effort.

Preview Deployments with GitHub Actions

With Preview Deployments you can automatically create deployments for changes you make to your application. Once set up, any changes pushed to your repositories' pull requests will automatically be deployed to a Codesphere workspace. The link to the preview deployment will be available in the pull request.

The benefit of such preview deployments is that every team member can take a look at the current state of a new feature development.

Step by step setup guide

  1. Set up a Codesphere account with username and password (OAuth users can set a password via the forgot password link on the signin page)
  2. Connect this account to your GitHub repository (grant access in create workspace modal)
  3. Open the repository's settings in GitHub
  4. In Secrets and Variables/Actions create two secrets CODESPHERE_EMAIL & CODESPHERE_PASSWORD with your credentials
  5. Create the directory /.github/workflows/ in your repository
  6. Add a new file main.yml to that directory
  7. Add, commit, and push the following lines to that file
on:
  workflow_dispatch:
  # open, reopen and synchronize will deploy a workspace for the current commit.
  # If a workspce is already deployed, that workspace is updated to the newest version.
  #
  # closed: Workspace will be deleted
  pull_request:
    types:
    - closed
    - opened
    - reopened
    - synchronize

permissions:
  contents: read
  pull-requests: read
  deployments: write

jobs:
  deploy:
    # prevent multiple workspaces to be created for the same branch
    concurrency: codesphere
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Deploy
        uses: codesphere-cloud/gh-action-deploy@main
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
        with:
            email: ${{ secrets.CODESPHERE_EMAIL }}
            password: ${{ secrets.CODESPHERE_PASSWORD }}
            team: 'My Team' # Change this to your team
            plan: 'Boost' # Select the plan for your app (Micro, Boost or Pro)
            onDemand: 'true' # Set this to true for on demand 
            env: |
              MY_ENV=test
              MY_SECRET=${{ secrets.MY_SECRET }}            
  1. Open a pull request for the repository - your deployment will start

All configuration options

email

Required email of the Codesphere user.

password

Required Password of the Codesphere user.

team

Required Name of the Codesphere team.

plan

Plan of the created workspace. See pricing page for corresponding compute, memory & storage amounts.Available options:

  • Micro
  • Boost
  • Pro

Default "Boost".

onDemand

If set to true the workspaces will be deployed in off when unused deployment mode.

env

Set environment variables in your workspace.Use dotenv like environment variables definition. See https://www.npmjs.com/package/dotenv for details.