name: publish

on:
  # Shows the manual trigger in GitHub UI
  # helpful as a back-up in case the GitHub Actions Workflow fails
  workflow_dispatch:

  release:
    types: [published]

jobs:
  npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: Run ./ci/steps/publish-npm.sh
        uses: ./ci/images/debian10
        with:
          args: ./ci/steps/publish-npm.sh
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: Run ./ci/steps/push-docker-manifest.sh
        uses: ./ci/images/debian10
        with:
          args: ./ci/steps/push-docker-manifest.sh
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
          DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

  homebrew:
    # The newest version of code-server needs to be available on npm when this runs
    # otherwise, it will 404 and won't open a PR to bump version on homebrew/homebrew-core
    needs: npm
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v2
      - name: Configure git
        run: |
          git config user.name github-actions
          git config user.email github-actions@github.com
      - name: Bump code-server homebrew version
        env:
          HOMEBREW_GITHUB_API_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}}
        run: ./ci/steps/brew-bump.sh