name: PR Checks

# Run the CI if branches are pushed locally, allowing us to
# run CI without the need of creating a pull request.
#
# Run the CI on pull requests only if they are from forked
# repositories.
#
on:
  push:
    branches-ignore:
    - gh-pages
  pull_request:
    types: [assigned, opened, synchronize, reopened]
    branches:
      # Branches from forks have the form 'user:branch-name' so we only run
      # this job on pull_request events for branches that look like fork
      # branches. Without this we would end up running this job twice for non
      # forked PRs, once for the push and then once for opening the PR.
    - '**:**'

env:
  CI_IMAGE: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:10-master-132813612
  PYTEST_ARGS: --color=yes --integration

jobs:
  tests:
    runs-on: ubuntu-20.04
    continue-on-error: ${{ matrix.allow-failure || false }}

    env:
      CI_IMAGE_PREFIX: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite
      CI_IMAGE_SUFFIX: master-132813612
      TOXENV: py35,py36,py37,py38-nocover

    strategy:
      fail-fast: false
      matrix:

        # Main test targets, the name defines the image that will be used as
        # the base for running tests.
        test-name:
          - debian:10
          - fedora:30
          - fedora:31
          - ubuntu:18.04

    steps:
      - name: Check out repository
        uses: actions/checkout@v2
        # BuildStream requires tags to be able to find its version.
        with:
          fetch-depth: 0

      - name: Run tox inside a container
        run: |

          cat << EOF > runtox.sh
          #!/bin/bash

          # Create user
          useradd -Um buildstream
          chown -R buildstream:buildstream .

          # Diagnostics
          echo "Running diagnostics checks"
          mount
          df -h
          tox --version

          # Run tox as user, ensure we have a login shell
          echo "Running tests"
          su buildstream -c '/bin/bash --login -c "tox -vvvvv -- $PYTEST_ARGS"'
          EOF

          chmod +x runtox.sh

          docker run \
              --privileged \
              --device /dev/fuse \
              --env PYTEST_ARGS \
              --env TOXENV=${{ matrix.toxenv || env.TOXENV }} \
              --volume /home/runner/work:/__w \
              --workdir /__w/buildstream/buildstream \
              "$CI_IMAGE_PREFIX"-${{ matrix.image-name || matrix.test-name }}-"$CI_IMAGE_SUFFIX" \
              ./runtox.sh

  docs:
    runs-on: ubuntu-20.04
    env:
      BST_FORCE_SESSION_REBUILD: 1
    steps:
      - name: Check out repository
        uses: actions/checkout@v2
        # BuildStream requires tags to be able to find its version.
        with:
          fetch-depth: 0
      - name: Run tox inside a container
        run: |
          docker run \
              --privileged \
              --device /dev/fuse \
              --env BST_FORCE_SESSION_REBUILD \
              --volume /home/runner/work:/__w \
              --workdir /__w/buildstream/buildstream \
              $CI_IMAGE \
              tox -e docs

      - name: Upload artifacts
        uses: actions/upload-artifact@v2
        with:
          name: docs
          path: doc/build/html

