name: 'BrowserStack Test'

on:
  pull_request_target:
    branches: [ master ]
      
jobs:    
  ubuntu-job:
    name: 'BrowserStack Test on Ubuntu'
    runs-on: ubuntu-latest  # Can be self-hosted runner also
    environment:
      name: Integrate Pull Request
    env: 
      GITACTIONS: true
    steps:

      - name: 'BrowserStack Env Setup'  # Invokes the setup-env action
        uses: browserstack/github-actions/setup-env@master
        with:
          username:  ${{ secrets.BROWSERSTACK_USERNAME }}
          access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}

      - name: 'BrowserStack Local Tunnel Setup'  # Invokes the setup-local action
        uses: browserstack/github-actions/setup-local@master
        with:
          local-testing: start
          local-identifier: random

      - name: 'Checkout the repository'
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 2

      - name: 'Setting up Ruby'
        uses: ruby/setup-ruby@v1
        # Ruby version is defined in .ruby-version file

      - name: 'Update and Install Dependencies'
        run: |
          sudo apt update
          sudo apt install libcurl4 libcurl4-openssl-dev
      - name: 'Configure Bundle testing and install gems'
        run: |
          bundle config unset --local without
          bundle config set --local with 'test' 'development'
          bundle install
      - name: 'Run BrowserStack simple verification'
        run: |
          bundle exec rake browserstack --trace

      - name: 'BrowserStackLocal Stop'  # Terminating the BrowserStackLocal tunnel connection
        uses: browserstack/github-actions/setup-local@master
        with:
          local-testing: stop