name: 'BrowserStack Test' on: pull_request_target: branches: [ master ] jobs: approve: runs-on: ubuntu-latest steps: - name: Approve run: echo For security reasons, all pull requests need to be approved first before running any automated CI. 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@v2 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 2 - name: 'Setting up Ruby' uses: ruby/setup-ruby@v1 with: ruby-version: 3.0.3 # Not needed with a .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