name: Installer integration

on:
  push:
    branches:
      - main
    paths:
      - "installer.sh"
  pull_request:
    branches:
      - main

jobs:
  ubuntu:
    name: Test installer on Ubuntu
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2

      - name: Install code-server
        run: ./install.sh

      - name: Test code-server
        run: yarn test:standalone-release code-server

  alpine:
    name: Test installer on Alpine
    runs-on: ubuntu-latest
    container: "alpine:3.14"
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2

      - name: Install curl
        run: apk add curl

      - name: Add user
        run: adduser coder --disabled-password

      # Standalone should work without root.
      - name: Test standalone to a non-existent prefix
        run: su coder -c "./install.sh --method standalone --prefix /tmp/does/not/yet/exist"

  macos:
    name: Test installer on macOS
    runs-on: macos-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v2

      - name: Install code-server
        run: ./install.sh

      - name: Test code-server
        run: yarn test:standalone-release code-server