name: 'BrowserStack Test' on: pull_request_target: types: [opened, synchronize, reopened, labeled] branches: [ master ] jobs: ubuntu-job: name: 'BrowserStack Test on Ubuntu' if: contains(github.event.pull_request.labels.*.name, 'safe-to-test') runs-on: ubuntu-latest # Can be self-hosted runner also permissions: contents: read pull-requests: write environment: name: Integrate Pull Request env: GITACTIONS: true steps: - name: 'Remove safe-to-test label' uses: actions/github-script@v6 with: script: | github.rest.issues.removeLabel({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, name: 'safe-to-test' }) - 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