name: Scheduled on: schedule: - cron: '0 0 * * *' # every day at midnight workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: # run Sytest in different variations sytest: timeout-minutes: 60 name: "Sytest (${{ matrix.label }})" runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - label: SQLite - label: SQLite, full HTTP APIs api: full-http - label: PostgreSQL postgres: postgres - label: PostgreSQL, full HTTP APIs postgres: postgres api: full-http container: image: matrixdotorg/sytest-dendrite:latest volumes: - ${{ github.workspace }}:/src - /root/.cache/go-build:/github/home/.cache/go-build - /root/.cache/go-mod:/gopath/pkg/mod env: POSTGRES: ${{ matrix.postgres && 1}} API: ${{ matrix.api && 1 }} SYTEST_BRANCH: ${{ github.head_ref }} RACE_DETECTION: 1 steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: | ~/.cache/go-build /gopath/pkg/mod key: ${{ runner.os }}-go-sytest-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-sytest- - name: Run Sytest run: /bootstrap.sh dendrite working-directory: /src - name: Summarise results.tap if: ${{ always() }} run: /sytest/scripts/tap_to_gha.pl /logs/results.tap - name: Sytest List Maintenance if: ${{ always() }} run: /src/show-expected-fail-tests.sh /logs/results.tap /src/sytest-whitelist /src/sytest-blacklist continue-on-error: true # not fatal - name: Are We Synapse Yet? if: ${{ always() }} run: /src/are-we-synapse-yet.py /logs/results.tap -v continue-on-error: true # not fatal - name: Upload Sytest logs uses: actions/upload-artifact@v2 if: ${{ always() }} with: name: Sytest Logs - ${{ job.status }} - (Dendrite, ${{ join(matrix.*, ', ') }}) path: | /logs/results.tap /logs/**/*.log* element_web: runs-on: ubuntu-latest steps: - uses: tecolicom/actions-use-apt-tools@v1 with: # Our test suite includes some screenshot tests with unusual diacritics, which are # supposed to be covered by STIXGeneral. tools: fonts-stix - uses: actions/checkout@v2 with: repository: matrix-org/matrix-react-sdk - uses: actions/setup-node@v3 with: cache: 'yarn' - name: Fetch layered build run: scripts/ci/layered.sh - name: Copy config run: cp element.io/develop/config.json config.json working-directory: ./element-web - name: Build env: CI_PACKAGE: true run: yarn build working-directory: ./element-web - name: "Run cypress tests" uses: cypress-io/github-action@v4.1.1 with: browser: chrome start: npx serve -p 8080 ./element-web/webapp wait-on: 'http://localhost:8080' env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true TMPDIR: ${{ runner.temp }} HOMESERVER: 'dendrite'