diff --git a/.github/workflows/end-to-end-tests.yaml b/.github/workflows/end-to-end-tests.yaml index ec6db273b7..a8d1e2e431 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -24,10 +24,6 @@ on: type: string required: false description: "The Git SHA of matrix-js-sdk to build against. By default, will use a matching branch name if it exists, or develop." - element-web-sha: - type: string - required: false - description: "The Git SHA of element-web to build against. By default, will use a matching branch name if it exists, or develop." concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} @@ -58,16 +54,14 @@ jobs: env: # tell layered.sh to check out the right sha of the JS-SDK & EW, if they were given one JS_SDK_GITHUB_BASE_REF: ${{ inputs.matrix-js-sdk-sha }} - ELEMENT_WEB_GITHUB_BASE_REF: ${{ inputs.element-web-sha }} run: | - scripts/ci/layered.sh + scripts/layered.sh JSSDK_SHA=$(git -C matrix-js-sdk rev-parse --short=12 HEAD) VECTOR_SHA=$(git rev-parse --short=12 HEAD) echo "VERSION=$VECTOR_SHA--js-$JSSDK_SHA" >> $GITHUB_OUTPUT - name: Copy config run: cp element.io/develop/config.json config.json - working-directory: ./element-web - name: Build env: @@ -76,13 +70,12 @@ jobs: run: | yarn build echo $VERSION > webapp/version - working-directory: ./element-web - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: webapp - path: element-web/webapp + path: webapp retention-days: 1 playwright: @@ -103,7 +96,6 @@ jobs: - uses: actions/checkout@v4 with: persist-credentials: false - path: element-web repository: element-hq/element-web - name: 📥 Download artifact @@ -115,16 +107,14 @@ jobs: - uses: actions/setup-node@v4 with: cache: "yarn" - cache-dependency-path: element-web/yarn.lock + cache-dependency-path: yarn.lock node-version: "lts/*" - name: Install dependencies - working-directory: element-web run: yarn install --frozen-lockfile - name: Get installed Playwright version id: playwright - working-directory: element-web run: echo "version=$(yarn list --pattern @playwright/test --depth=0 --json --non-interactive --no-progress | jq -r '.data.trees[].name')" >> $GITHUB_OUTPUT - name: Cache playwright binaries @@ -137,19 +127,17 @@ jobs: - name: Install Playwright browsers if: steps.playwright-cache.outputs.cache-hit != 'true' - working-directory: element-web run: yarn playwright install --with-deps - name: Run Playwright tests run: yarn playwright test --shard ${{ matrix.runner }}/${{ strategy.job-total }} - working-directory: element-web - name: Upload blob report to GitHub Actions Artifacts if: always() uses: actions/upload-artifact@v4 with: name: all-blob-reports-${{ matrix.runner }} - path: element-web/blob-report + path: blob-report retention-days: 1 complete: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 31739822bb..67f9bc36cc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -48,7 +48,7 @@ jobs: cache: "yarn" - name: Install Deps - run: "./scripts/ci/install-deps.sh" + run: "./scripts/layered.sh" env: JS_SDK_GITHUB_BASE_REF: ${{ inputs.matrix-js-sdk-sha }} diff --git a/scripts/ci/install-deps.sh b/scripts/ci/install-deps.sh deleted file mode 100755 index 5fddc09018..0000000000 --- a/scripts/ci/install-deps.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# This installs other Matrix dependencies that are often -# developed in parallel with react-sdk, using fetchdep.sh -# for branch matching. -# This will set up a working react-sdk environment, so is -# used for running react-sdk standalone tests. To set up a -# build of element-web, use layered.sh - -set -ex - -scripts/fetchdep.sh matrix-org matrix-js-sdk develop -pushd matrix-js-sdk -[ -n "$JS_SDK_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $JS_SDK_GITHUB_BASE_REF && git checkout $JS_SDK_GITHUB_BASE_REF -yarn link -yarn install --frozen-lockfile $@ -popd - -scripts/fetchdep.sh matrix-org matrix-analytics-events -# We don't pass a default branch so cloning may fail when we are not in a PR -# This is expected as this project does not share a release cycle but we still branch match it -if [ -d matrix-analytics-events ]; then - pushd matrix-analytics-events - yarn link - yarn install --frozen-lockfile $@ - yarn build:ts - popd -fi - -yarn link matrix-js-sdk -[ -d matrix-analytics-events ] && yarn link @matrix-org/analytics-events -yarn install --frozen-lockfile $@ diff --git a/scripts/ci/layered.sh b/scripts/ci/layered.sh deleted file mode 100755 index b072334f09..0000000000 --- a/scripts/ci/layered.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -set -ex - -# Creates a layered environment with the full repo for the app and SDKs cloned -# and linked. This gives an element-web dev environment ready to build with -# the current react-sdk branch and any matching branches of react-sdk's dependencies -# so that changes can be tested in element-web. - -# Note that this style is different from the recommended developer setup: this -# file nests js-sdk inside element-web, while the local -# development setup places them all at the same level. We are nesting them here -# because some CI systems do not allow moving to a directory above the checkout -# for the primary repo (react-sdk in this case). - -# Set up the js-sdk first -scripts/fetchdep.sh matrix-org matrix-js-sdk develop -pushd matrix-js-sdk -[ -n "$JS_SDK_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $JS_SDK_GITHUB_BASE_REF && git checkout $JS_SDK_GITHUB_BASE_REF -yarn link -yarn install --frozen-lockfile -popd - -# Also set up matrix-analytics-events for branch with matching name -scripts/fetchdep.sh matrix-org matrix-analytics-events -# We don't pass a default branch so cloning may fail when we are not in a PR -# This is expected as this project does not share a release cycle but we still branch match it -if [ -d matrix-analytics-events ]; then - pushd matrix-analytics-events - yarn link - yarn install --frozen-lockfile - yarn build:ts - popd -fi - -# Finally, set up element-web -scripts/fetchdep.sh vector-im element-web develop -pushd element-web -[ -n "$ELEMENT_WEB_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $ELEMENT_WEB_GITHUB_BASE_REF && git checkout $ELEMENT_WEB_GITHUB_BASE_REF -yarn link matrix-js-sdk -yarn install --frozen-lockfile -yarn build:res -popd diff --git a/scripts/layered.sh b/scripts/layered.sh index 6697e09540..3da209812d 100755 --- a/scripts/layered.sh +++ b/scripts/layered.sh @@ -23,6 +23,7 @@ export PR_REPO=element-web # Set up the js-sdk first scripts/fetchdep.sh matrix-org matrix-js-sdk develop pushd matrix-js-sdk +[ -n "$JS_SDK_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $JS_SDK_GITHUB_BASE_REF && git checkout $JS_SDK_GITHUB_BASE_REF yarn link yarn install --frozen-lockfile popd @@ -41,3 +42,5 @@ fi # Link the layers into element-web yarn link matrix-js-sdk +[ -d matrix-analytics-events ] && yarn link @matrix-org/analytics-events +yarn install --frozen-lockfile $@