name: "publish release - Docker"

on:
  workflow_dispatch:
    inputs:
      is_release:
        required: true
        type: boolean
        description: "Is this a release image?"

  release:
    types: [published]

jobs:
  publish-docker-release:
    name: "publish to DockerHub"
    runs-on: ubuntu-20.04
    if: github.repository == 'microsoft/playwright'
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: 14
        registry-url: 'https://registry.npmjs.org'
    - uses: azure/docker-login@v1
      with:
        login-server: playwright.azurecr.io
        username: playwright
        password: ${{ secrets.DOCKER_PASSWORD }}
    - name: Set up Docker QEMU for arm64 docker builds
      uses: docker/setup-qemu-action@v1
      with:
        platforms: arm64
    - run: npm i -g npm@8
    - run: npm ci
    - run: npm run build
    - run: npx playwright install-deps
    - run: ./utils/docker/publish_docker.sh stable
      if: (github.event_name != 'workflow_dispatch' && !github.event.release.prerelease) || (github.event_name == 'workflow_dispatch' && github.event.inputs.is_release == 'true')
    - run: ./utils/docker/publish_docker.sh canary
      if: (github.event_name != 'workflow_dispatch' && github.event.release.prerelease) || (github.event_name == 'workflow_dispatch' && github.event.inputs.is_release != 'true')
