name: Continuous integration

on: [push]

jobs:
  check_pr:
    runs-on: ubuntu-latest
    steps:
      - name: Create npm configuration
        run: echo "//npm.pkg.github.com/:_authToken=${token}" >> ~/.npmrc
        env:
          token: ${{ secrets.GITHUB_TOKEN }}

      - uses: actions/checkout@v1
      - run: npm ci
      - run: npm run build
      - run: npm run test

  install_stable:
    runs-on: ubuntu-latest
    needs: check_pr
    steps:
      - uses: actions/checkout@v1
      - uses: ./
        with:
          toolchain: stable

  install_nightly:
    runs-on: ubuntu-latest
    needs: check_pr
    steps:
      - uses: actions/checkout@v1
      - uses: ./
        with:
          profile: minimal
          toolchain: nightly
          components: rustfmt, clippy

  install_stable_in_docker:
    runs-on: ubuntu-latest
    container: ubuntu:latest  # Docker image, not the GitHub Actions VM
    needs: check_pr
    steps:
      # `rustup` will need `curl` or `wget` later
      - run: apt-get update && apt-get install -y curl
      - uses: actions/checkout@v1
      - uses: ./
        with:
          toolchain: stable