Issue #546 - Tests on MS Edge run successfully locally but fail in Gi… #243
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Robot Framework in Docker | |
| on: | |
| push: | |
| # Publish `master` as Docker `latest` image. | |
| branches: | |
| - master | |
| tags: | |
| - "*" | |
| # Run tests for any PRs. | |
| pull_request: | |
| env: | |
| REGISTRY: docker.io | |
| # The image name | |
| IMAGE_NAME: ppodgorsek/robot-framework | |
| IMAGE_VERSION_CI: ci | |
| # Build and run tests. | |
| # See also https://docs.docker.com/docker-hub/builds/automated-testing/ | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} | |
| password: ${{ secrets.DOCKER_REGISTRY_TOKEN }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build | |
| uses: docker/build-push-action@v6 | |
| with: | |
| # Only build one platform in order to run tests (additional platforms will be built afterwards, before push) | |
| platforms: linux/amd64 | |
| push: false | |
| tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:cache | |
| cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:cache,mode=max | |
| test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| # run all our tests on each browser | |
| strategy: | |
| matrix: | |
| include: | |
| - browser: "chrome" | |
| # FIXME: The tests pass successfully for Edge locally but fail in GitHub Actions | |
| # - browser: "edge" | |
| - browser: "firefox" | |
| env: | |
| BROWSER: ${{ matrix.browser }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Pull image from cache | |
| uses: docker/build-push-action@v6 | |
| with: | |
| platforms: linux/amd64 | |
| push: false | |
| tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:cache | |
| - name: Basic Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Test dependency installation | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/pip-dependencies/main.robot:/opt/robotframework/tests/pip-dependencies.robot:Z \ | |
| -v `pwd`/test/pip-dependencies/requirements.txt:/opt/robotframework/pip-requirements.txt:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Colour Depth 16 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_COLOUR_DEPTH=16 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Screen Width 800x600 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_WIDTH=800 \ | |
| -e SCREEN_HEIGHT=600 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Screen Width 1024x768 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_WIDTH=1024 \ | |
| -e SCREEN_HEIGHT=768 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Screen Width 1280x1024 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_WIDTH=1280 \ | |
| -e SCREEN_HEIGHT=1024 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Screen Width 2560x1440 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_WIDTH=2560 \ | |
| -e SCREEN_HEIGHT=1440 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Screen Width 3840x2160 Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e SCREEN_WIDTH=3840 \ | |
| -e SCREEN_HEIGHT=2160 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Debug Log Level Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e ROBOT_OPTIONS="--loglevel DEBUG" \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Basic Multithreaded Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e ROBOT_THREADS=4 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Test Level Multithreaded Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/browser-library.robot:/opt/robotframework/tests/browser-library.robot:Z \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \ | |
| -v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \ | |
| -v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e ROBOT_THREADS=4 \ | |
| -e PABOT_OPTIONS="--testlevelsplit" \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Custom User Test | |
| run: | | |
| docker run --rm --user=2000 --shm-size=1g \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Custom User and Group Test | |
| run: | | |
| docker run --rm --user=2000:2000 --shm-size=1g \ | |
| -v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Datetime | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e TZ="America/New_York" \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| - name: Rerun Test | |
| run: | | |
| docker run --rm --shm-size=1g \ | |
| -v `pwd`/test/rerun.robot:/opt/robotframework/tests/rerun.robot:Z \ | |
| -e BROWSER=${{ env.BROWSER }} \ | |
| -e ROBOT_RERUN_MAX_ROUNDS=50 \ | |
| ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_VERSION_CI }} | |
| push: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| if: github.event_name != 'pull_request' && github.ref_type == 'tag' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} | |
| password: ${{ secrets.DOCKER_REGISTRY_TOKEN }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build other platforms and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| platforms: linux/amd64,linux/arm64 | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }},${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest | |
| cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:cache |