From 451fd0b8877a675a2091809941569960fb8b7684 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Thu, 18 Apr 2024 15:51:36 +0200 Subject: [PATCH] devops: change auth mode for flakiness/docker/driver uploads --- .github/workflows/create_test_report.yml | 10 +- .github/workflows/publish_canary.yml | 1 - .github/workflows/publish_release_docker.yml | 16 +- .github/workflows/publish_release_driver.yml | 10 +- .github/workflows/tests_electron.yml | 8 +- .github/workflows/tests_primary.yml | 41 +++- .github/workflows/tests_secondary.yml | 201 ++++++++++++++++++- .github/workflows/tests_video.yml | 11 +- .github/workflows/tests_webview2.yml | 11 +- utils/build/upload-playwright-driver.sh | 10 +- utils/upload_flakiness_dashboard.sh | 12 +- 11 files changed, 298 insertions(+), 33 deletions(-) diff --git a/.github/workflows/create_test_report.yml b/.github/workflows/create_test_report.yml index 4c9a55ffd1..2085a10276 100644 --- a/.github/workflows/create_test_report.yml +++ b/.github/workflows/create_test_report.yml @@ -18,12 +18,12 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 18 - - name: "Azure OIDC Login" - uses: azure/login@v1 + - name: Azure Login + uses: azure/login@v2 with: - client-id: ${{ vars.CFS_CLIENT_ID }} - tenant-id: ${{ vars.CFS_TENANT_ID }} - subscription-id: ${{ vars.CFS_SUBSCRIPTION_ID }} + client-id: ${{ secrets.AZURE_BLOB_REPORTS_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_BLOB_REPORTS_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_BLOB_REPORTS_SUBSCRIPTION_ID }} - run: npm ci env: DEBUG: pw:install diff --git a/.github/workflows/publish_canary.yml b/.github/workflows/publish_canary.yml index 6c9eb046e0..ce4ec7842c 100644 --- a/.github/workflows/publish_canary.yml +++ b/.github/workflows/publish_canary.yml @@ -52,7 +52,6 @@ jobs: - name: build & publish driver env: AZ_UPLOAD_FOLDER: driver/next - AZ_ACCOUNT_KEY: ${{ secrets.AZ_ACCOUNT_KEY }} AZ_ACCOUNT_NAME: ${{ secrets.AZ_ACCOUNT_NAME }} run: | utils/build/build-playwright-driver.sh diff --git a/.github/workflows/publish_release_docker.yml b/.github/workflows/publish_release_docker.yml index bc836960f1..f50216e45f 100644 --- a/.github/workflows/publish_release_docker.yml +++ b/.github/workflows/publish_release_docker.yml @@ -18,18 +18,24 @@ jobs: publish-docker-release: name: "publish to DockerHub" runs-on: ubuntu-22.04 + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed if: github.repository == 'microsoft/playwright' steps: + - name: Azure Login + uses: azure/login@v2 + with: + client-id: ${{ secrets.AZURE_DOCKER_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_DOCKER_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_DOCKER_SUBSCRIPTION_ID }} + - name: Login to ACR via OIDC + run: az acr login --name playwright - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 18 registry-url: 'https://registry.npmjs.org' - - uses: azure/docker-login@v1 - with: - login-server: playwright.azurecr.io - username: playwright - password: ${{ secrets.DOCKER_PASSWORD }} - name: Set up Docker QEMU for arm64 docker builds uses: docker/setup-qemu-action@v3 with: diff --git a/.github/workflows/publish_release_driver.yml b/.github/workflows/publish_release_driver.yml index 61524f9cd2..07b002d4ab 100644 --- a/.github/workflows/publish_release_driver.yml +++ b/.github/workflows/publish_release_driver.yml @@ -11,9 +11,18 @@ jobs: publish-driver-release: name: "publish playwright driver to CDN" runs-on: ubuntu-20.04 + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed if: github.repository == 'microsoft/playwright' steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + with: + client-id: ${{ secrets.AZURE_PW_CDN_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_PW_CDN_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_PW_CDN_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -25,5 +34,4 @@ jobs: - run: utils/build/upload-playwright-driver.sh env: AZ_UPLOAD_FOLDER: driver - AZ_ACCOUNT_KEY: ${{ secrets.AZ_ACCOUNT_KEY }} AZ_ACCOUNT_NAME: ${{ secrets.AZ_ACCOUNT_NAME }} diff --git a/.github/workflows/tests_electron.yml b/.github/workflows/tests_electron.yml index 05f7302747..331a12a263 100644 --- a/.github/workflows/tests_electron.yml +++ b/.github/workflows/tests_electron.yml @@ -17,7 +17,6 @@ on: env: # Force terminal colors. @see https://www.npmjs.com/package/colors FORCE_COLOR: 1 - FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} jobs: test_electron: @@ -29,6 +28,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 diff --git a/.github/workflows/tests_primary.yml b/.github/workflows/tests_primary.yml index 5b4b080287..3901c44afd 100644 --- a/.github/workflows/tests_primary.yml +++ b/.github/workflows/tests_primary.yml @@ -22,7 +22,6 @@ concurrency: env: # Force terminal colors. @see https://www.npmjs.com/package/colors FORCE_COLOR: 1 - FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} ELECTRON_SKIP_BINARY_DOWNLOAD: 1 jobs: @@ -44,8 +43,18 @@ jobs: runs-on: ${{ matrix.os }} env: PWTEST_BOT_NAME: "${{ matrix.browser }}-${{ matrix.os }}-node${{ matrix.node-version }}" + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -76,8 +85,18 @@ jobs: runs-on: ${{ matrix.os }} env: PWTEST_BOT_NAME: "${{ matrix.os }}-chromium-tip-of-tree" + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -130,8 +149,18 @@ jobs: runs-on: ${{ matrix.os }} env: PWTEST_BOT_NAME: "${{ matrix.os }}-node${{ matrix.node-version }}-${{ matrix.shardIndex }}" + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: ${{matrix.node-version}} @@ -238,8 +267,18 @@ jobs: timeout-minutes: 30 env: PWTEST_BOT_NAME: "package-installations-${{ matrix.os }}" + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 diff --git a/.github/workflows/tests_secondary.yml b/.github/workflows/tests_secondary.yml index 0ba6b9d848..010891f264 100644 --- a/.github/workflows/tests_secondary.yml +++ b/.github/workflows/tests_secondary.yml @@ -17,9 +17,12 @@ on: env: # Force terminal colors. @see https://www.npmjs.com/package/colors FORCE_COLOR: 1 - FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} ELECTRON_SKIP_BINARY_DOWNLOAD: 1 +permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed + jobs: test_linux: name: ${{ matrix.os }} (${{ matrix.browser }}) @@ -33,6 +36,13 @@ jobs: PWTEST_BOT_NAME: "${{ matrix.browser }}-${{ matrix.os }}" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -66,6 +76,13 @@ jobs: PWTEST_BOT_NAME: "${{ matrix.browser }}-${{ matrix.os }}" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -97,6 +114,13 @@ jobs: PWTEST_BOT_NAME: "${{ matrix.browser }}-windows-latest" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -136,6 +160,13 @@ jobs: timeout-minutes: 30 steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} @@ -166,6 +197,13 @@ jobs: PWTEST_BOT_NAME: "${{ matrix.browser }}-headed-${{ matrix.os }}" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -200,6 +238,13 @@ jobs: PWTEST_BOT_NAME: "${{ matrix.mode }}" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -238,6 +283,13 @@ jobs: PWTEST_BOT_NAME: "tracing-${{ matrix.channel || matrix.browser }}" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -268,6 +320,13 @@ jobs: PWTEST_BOT_NAME: "chrome-stable-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -296,6 +355,13 @@ jobs: PWTEST_BOT_NAME: "chrome-stable-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -325,6 +391,13 @@ jobs: PWTEST_BOT_NAME: "chrome-stable-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -358,6 +431,13 @@ jobs: os: [ubuntu-20.04, macos-12, windows-latest] steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -392,6 +472,13 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -421,6 +508,13 @@ jobs: PWTEST_BOT_NAME: "firefox-beta-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -449,6 +543,13 @@ jobs: PWTEST_BOT_NAME: "firefox-beta-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -478,6 +579,13 @@ jobs: PWTEST_BOT_NAME: "firefox-beta-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -506,6 +614,13 @@ jobs: PWTEST_BOT_NAME: "edge-stable-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -534,6 +649,13 @@ jobs: PWTEST_BOT_NAME: "edge-stable-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -563,6 +685,13 @@ jobs: PWTEST_BOT_NAME: "edge-stable-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -591,6 +720,13 @@ jobs: PWTEST_BOT_NAME: "edge-beta-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -619,6 +755,13 @@ jobs: PWTEST_BOT_NAME: "edge-beta-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -648,6 +791,13 @@ jobs: PWTEST_BOT_NAME: "edge-beta-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -676,6 +826,13 @@ jobs: PWTEST_BOT_NAME: "edge-dev-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -704,6 +861,13 @@ jobs: PWTEST_BOT_NAME: "edge-dev-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -733,6 +897,13 @@ jobs: PWTEST_BOT_NAME: "edge-dev-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -761,6 +932,13 @@ jobs: PWTEST_BOT_NAME: "chrome-beta-linux" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -789,6 +967,13 @@ jobs: PWTEST_BOT_NAME: "chrome-beta-windows" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -818,6 +1003,13 @@ jobs: PWTEST_BOT_NAME: "chrome-beta-mac" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 @@ -859,6 +1051,13 @@ jobs: PWTEST_BOT_NAME: "headless-new" steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 diff --git a/.github/workflows/tests_video.yml b/.github/workflows/tests_video.yml index b51c0e4e76..ab29a3d2ae 100644 --- a/.github/workflows/tests_video.yml +++ b/.github/workflows/tests_video.yml @@ -9,7 +9,6 @@ on: env: # Force terminal colors. @see https://www.npmjs.com/package/colors FORCE_COLOR: 1 - FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} ELECTRON_SKIP_BINARY_DOWNLOAD: 1 jobs: @@ -20,9 +19,19 @@ jobs: matrix: browser: [chromium, firefox, webkit] os: [ubuntu-20.04, ubuntu-22.04] + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 diff --git a/.github/workflows/tests_webview2.yml b/.github/workflows/tests_webview2.yml index cf9a2ef0e9..66e2a8670c 100644 --- a/.github/workflows/tests_webview2.yml +++ b/.github/workflows/tests_webview2.yml @@ -17,15 +17,24 @@ on: env: # Force terminal colors. @see https://www.npmjs.com/package/colors FORCE_COLOR: 1 - FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} ELECTRON_SKIP_BINARY_DOWNLOAD: 1 jobs: test_webview2: name: WebView2 runs-on: windows-2022 + permissions: + id-token: write # This is required for OIDC login (azure/login) to succeed + contents: read # This is required for actions/checkout to succeed steps: - uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v2 + if: github.event_name == 'push' && github.repository == 'microsoft/playwright' + with: + client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} - uses: actions/setup-node@v4 with: node-version: 18 diff --git a/utils/build/upload-playwright-driver.sh b/utils/build/upload-playwright-driver.sh index 726424ba4a..92804999cf 100755 --- a/utils/build/upload-playwright-driver.sh +++ b/utils/build/upload-playwright-driver.sh @@ -6,8 +6,8 @@ trap "cd $(pwd -P)" EXIT cd "$(dirname "$0")" PACKAGE_VERSION=$(node -p "require('../../package.json').version") -az storage blob upload -c builds --account-key ${AZ_ACCOUNT_KEY} --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-mac.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-mac.zip" -az storage blob upload -c builds --account-key ${AZ_ACCOUNT_KEY} --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-mac-arm64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-mac-arm64.zip" -az storage blob upload -c builds --account-key ${AZ_ACCOUNT_KEY} --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-linux.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-linux.zip" -az storage blob upload -c builds --account-key ${AZ_ACCOUNT_KEY} --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-linux-arm64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-linux-arm64.zip" -az storage blob upload -c builds --account-key ${AZ_ACCOUNT_KEY} --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-win32_x64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-win32_x64.zip" +az storage blob upload -c builds --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-mac.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-mac.zip" +az storage blob upload -c builds --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-mac-arm64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-mac-arm64.zip" +az storage blob upload -c builds --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-linux.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-linux.zip" +az storage blob upload -c builds --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-linux-arm64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-linux-arm64.zip" +az storage blob upload -c builds --account-name ${AZ_ACCOUNT_NAME} -f ./output/playwright-${PACKAGE_VERSION}-win32_x64.zip -n "${AZ_UPLOAD_FOLDER}/playwright-${PACKAGE_VERSION}-win32_x64.zip" diff --git a/utils/upload_flakiness_dashboard.sh b/utils/upload_flakiness_dashboard.sh index 63cef4ed3d..b4940d0980 100755 --- a/utils/upload_flakiness_dashboard.sh +++ b/utils/upload_flakiness_dashboard.sh @@ -21,9 +21,6 @@ if [[ ($1 == '--help') || ($1 == '-h') ]]; then echo "usage: $(basename $0) " echo echo "Upload report to the flakiness dashboard." - echo - echo "NOTE: the following env variables are required:" - echo " FLAKINESS_CONNECTION_STRING connection for the azure blob storage to upload report" exit 0 fi @@ -37,13 +34,6 @@ if [[ "${GITHUB_REF}" != "refs/heads/main" && "${GITHUB_REF}" != 'refs/heads/rel exit 0 fi -if [[ -z "${FLAKINESS_CONNECTION_STRING}" ]]; then - echo "ERROR: \$FLAKINESS_CONNECTION_STRING environment variable is missing." - echo " 'Azure Account Name' and 'Azure Account Key' secrets are required" - echo " to upload flakiness results to Azure blob storage." - exit 1 -fi - if [[ $# == 0 ]]; then echo "ERROR: missing report name!" echo "try './$(basename $0) --help' for more information" @@ -92,7 +82,7 @@ node -e "${EMBED_METADATA_SCRIPT}" "$1" > "${REPORT_NAME}" gzip "${REPORT_NAME}" -az storage blob upload --connection-string "${FLAKINESS_CONNECTION_STRING}" -c uploads -f "${REPORT_NAME}.gz" -n "${REPORT_NAME}.gz" +az storage blob upload --account-name folioflakinessdashboard -c uploads -f "${REPORT_NAME}.gz" -n "${REPORT_NAME}.gz" UTC_DATE=$(cat <