Commit Graph

166 Commits

Author SHA1 Message Date
Alan Guo Xiang Tan
9a2e6fc890
DEV: Cache minio binaries cause downloading them is slow (#28956) 2024-09-18 10:20:10 +08:00
Alan Guo Xiang Tan
54cf00ba78
DEV: Reduce number of parallel processes for frontend tests (#28936)
Seeing errors like the following which is normally due to us running
too many processes.

```
not ok 292 Firefox - [undefined ms] - error
    ---
        message: >
            Error: Browser timeout exceeded: 10s
            Error while executing test: Acceptance: Uppy Composer Attachment - Multiple Upload Errors: should show a consolidated message for multiple failed uploads
            Stderr:
             *** You are running in headless mode.

            Stdout:
             [GFX1-]: glxtest: libpci missing
            [GFX1-]: glxtest: Unable to open a connection to the X server
            [GFX1-]: No GPUs detected via PCI

            [GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt
```
2024-09-17 08:01:40 +08:00
Alan Guo Xiang Tan
c415b916a2
DEV: Switch to our own hosted runners for tests workflow everywhere (#28926) 2024-09-16 12:03:10 +08:00
Alan Guo Xiang Tan
4377649077
DEV: Only run check-flaky-spec-report when enabled in tests workflow (#28903) 2024-09-13 14:59:49 +08:00
Alan Guo Xiang Tan
9a4f71353d
DEV: Fix incorrect github.ref value in tests workflow (#28902) 2024-09-13 14:24:42 +08:00
Alan Guo Xiang Tan
f6ba5ed4d9
DEV: Use hosted runners on main branch for tests workflow (#28901)
Follow-up to 92f7b3e789
2024-09-13 13:43:06 +08:00
Michael Fitz-Payne
92f7b3e789
Reapply "DEV: update runners to debian-12" (#28899)
docker.io rate limits _should_ be addressed now. Switch back to
`debian-12` runners.

This is now a conditional within the `tests` workflow as we evaluate the
migration.

This reverts commit a99e2c62e6.
2024-09-13 13:35:32 +08:00
Michael Fitz-Payne
a99e2c62e6 Revert "DEV: update runners to debian-12"
Need to address rate limits from docker.io

This reverts commit 6ba0dcdb0e.
2024-09-13 08:19:51 +10:00
Michael Fitz-Payne
6ba0dcdb0e DEV: update runners to debian-12
The self-hosted Github runners have been provisioned, and we can switch
to using them for evaluation.

To prefer Github-hosted runners, you can safely revert this commit.

See: t/123181.
2024-09-13 06:32:55 +10:00
Jarek Radosz
83acd8b80a
DEV: Change qunit_parallel to 2 for frontend themes (#28842)
This seems to mitigate the flaky timeouts we've been seeing recently, while not affecting the speed in any meaningful way.
2024-09-11 11:39:26 +02:00
Jarek Radosz
4792468c88
DEV: Drop qunit timeout args (#28775)
whatever was using that value is long gone
2024-09-06 13:08:42 +02:00
Alan Guo Xiang Tan
7092d88ee4
DEV: Remove redundant step in tests workflow (#28716)
Base image no longer ships with Chromium so no need to remove it
2024-09-04 07:53:49 +08:00
David Taylor
80b9c280ba
DEV: Switch to pnpm for JS dependencies (#28671)
This will bring significant improvements to install speed & storage requirements. For information on how it may affect you, see https://meta.discourse.org/t/324521

This commit:
- removes the `yarn.lock` and replaces with `pnpm-lock.yaml`
- updates workspaces to pnpm format
- adjusts package dependencies to work with pnpm's stricter resolution strategy
- updates Rails app to load modules from more specific node_modules directories
- adds a `.pnpmfile` which automatically cleans up old yarn-managed `node_modules` directories
- updates various scripts to call `pnpm` instead of `yarn`
- updates patches to use pnpm's native patch system instead of patch-package
- adds a patch for licensee to support pnpm
2024-09-03 10:51:07 +01:00
Alan Guo Xiang Tan
08b60cfd73
DEV: Fix app-cache key not considering number of parallel database (#28629)
This is a follow-up to 8adc484804
2024-08-29 13:03:21 +08:00
Alan Guo Xiang Tan
8adc484804
DEV: Fix app-cache regression in tests workflow (#28626)
This regressed in b83a2a34a4 because the
Github actions docs doesn't make it clear that `runner.name` is actually
the runner's name plus some unique string appended at the end. Why they
would do that is beyond me.
2024-08-29 10:40:34 +08:00
Alan Guo Xiang Tan
ace8db23d2
DEV: Profile RSpec tests in tests workflow (#28536)
The `--profile 50` option will print the top 50 slowest tests
2024-08-26 08:52:17 +08:00
Alan Guo Xiang Tan
b586f2cb98
DEV: Don't hardcode number of parallel processes for QUnit (#28535) 2024-08-26 08:42:35 +08:00
Alan Guo Xiang Tan
17db30ab7e
DEV: Avoid hardcoding PARALLEL_TEST_PROCESSORS in tests workflow (#28511)
This allows to maximize the CPU cores when the tests workflow is ran on
a larger runner.
2024-08-23 16:56:09 +08:00
Alan Guo Xiang Tan
b83a2a34a4
DEV: Update app-cache cache key for tests workflow (#28508)
We cannot just key on `runner.os` the number of CPU cores matter as
well. Therefore, we need to key on `runner.name` instead since each
runner has its own unique OS and CPU cores. Technically, two different
runner with different names can have the same `os` and `cpu cores` but
we don't have that problem now.
2024-08-23 11:13:03 +08:00
David Taylor
50c10de459
DEV: Update GitHub Actions runners to ubuntu 22.04 (#28481) 2024-08-22 11:09:39 +01:00
Alan Guo Xiang Tan
f41c4ccfc2
DEV: Switch back to Chrome for running QUnit tests (#28429)
QUnit tests are failing in different ways on Chromium in Debian
bookworm. We have no interest in figuring out why as it is not a good
use of our time and the long term plan is to switch to Chrome for Testing
anyway.
2024-08-20 13:12:33 +08:00
Jarek Radosz
9adcc4ac91
DEV: Do not run theme QUnit in parallel (#27576)
Running in parallel seems to cause (unexplained so far) timeouts
2024-06-24 01:14:26 +02:00
Jarek Radosz
12661ece97
DEV: Run flake check only on discourse/discourse (#27350)
script/get_github_workflow_run_job_id.rb would fail on forks anyway
2024-06-05 18:30:37 +02:00
Jarek Radosz
0b7563b804
DEV: Fix the order of operations in themes-frontend (#27317)
Previously "themes frontend" CI job would:

1. pull compatible versions of themes that happened to be in the base image
2. clone all official themes (overriding the compatible versions from 1.)
3. run tests
2024-06-04 15:16:44 +02:00
Alan Guo Xiang Tan
67a7b28096
DEV: Don't run discourse-ai plugin specs when running against stable (#27095)
`discourse-ai` has custom gems which need to be bumped in order to be
compatible with Ruby 3.3. However, its version is pinned so we can't
pull in the commits in which upgrades the gems to be compatible with
Ruby 3.3. Just avoid running the specs on `stable` branch for now until
we release a new stable.
2024-05-21 12:09:40 +08:00
Alan Guo Xiang Tan
34c527d694
DEV: Pull compatible themes in tests workflow (#27093)
This commit adds a step in our tests workflow on Github actions to update the themes to
use the compatible version when not running aginast the `main` branch.
This is to ensure that we are not running
the tests for themes against an incompatible version of Discourse.
2024-05-21 10:38:41 +08:00
David Taylor
f74983e2e1
DEV: Enable 'cheap source maps' in GitHub CI (#26933)
This seems to save ~7s in core build time. I also tried disabling sourcemaps completely, but it didn't bring any additional benefit.
2024-05-08 10:28:07 +01:00
Gerhard Schlager
bce7c486d8 DEV: Skip tests when unrelated GitHub config files are changed 2024-04-15 16:22:11 +02:00
Gerhard Schlager
1a9f4ec32b DEV: Skip tests when migrations-tests workflow is changed 2024-04-15 16:22:11 +02:00
David Taylor
8098876bfa
DEV: Restore RSpec 'documentation' output, but collapse in CI (#26485)
This reverts commit ef895f1c32 and 57df0d526e, but adds GitHub actions line grouping to the verbose output to reduce scrolling.
2024-04-03 10:54:55 +01:00
David Taylor
1e42e86601
DEV: Restore qunit 'tap' reporter, but collapse verbose output in CI (#26484)
This reverts commit 5adfb299ac, but uses GitHub actions grouping to achieve the same result: less scrolling to see failures.
2024-04-03 10:22:20 +01:00
Alan Guo Xiang Tan
337edc2f21
DEV: Update actions cache keys for bundler cache take 2 (#26411)
This is a follow up to 69c132723f which
wasn't right and broke our bundler github actions cache key
2024-03-28 10:25:58 +08:00
Alan Guo Xiang Tan
69c132723f
DEV: Update actions cache keys for bundler and app cache (#26398)
Why this change?

Bundle cache should be keyed on ruby version as well as the debian
release name. Changes to the debian release can affect the way gems are
installed since gems may link to different versions of binaries.
2024-03-28 09:20:26 +08:00
Loïc Guitaut
e911362864 DEV: Use Chrome in system specs
The version of Chromium we have in our images (120) is relatively
unstable and our system specs break regularly.

This patch makes sure Chrome is used instead for system specs.
2024-03-27 12:19:55 +01:00
Alan Guo Xiang Tan
0df50a7e5d
DEV: Use the right number of cores for bundle install in tests workflow (#26389)
Why this change?

We run on different runners depending on the scenario. We should use the
right number of parallel jobs for bundle install based on the number of
CPU cores the runner has.
2024-03-27 10:19:09 +08:00
Martin Brennan
5adfb299ac
DEV: Change QUnit reporters to dot (#26360)
This is so the CI output on GitHub actions isn't showing
tons and tons of unnecessary log data every time you want
to see the important thing, which is the actual test failure.
2024-03-26 16:54:22 +10:00
Alan Guo Xiang Tan
ef895f1c32
DEV: Drop documentation format on CI (#26356)
Why this change?

The output is too verbose and prevents us from quickly identifying tests
failures. Now that our tests are way more stable and less flaky, we can
drop the documentation format since we do not need it for debugging
purposes that often anymore
2024-03-26 12:03:55 +08:00
Loïc Guitaut
99921120a1 DEV: Switch to Chromium in CI
This patch switches to using Chromium in our CI jobs instead of Chrome.
2024-03-25 21:24:26 +01:00
Martin Brennan
57df0d526e
DEV: Change plugin rspec format to progress (#26098)
Having format documentation for the plugin specs just
makes a huge output that must be scrolled in order to
see the spec failures.
2024-03-08 16:12:15 +10:00
Jarek Radosz
299b323d9a
DEV: Update ember-cli to 5.6.0 (#25886) 2024-02-27 10:48:30 +01:00
David Taylor
542cb22fd4 DEV: Drop Ember 3 feature flag 2024-02-26 12:22:05 +00:00
Alan Guo Xiang Tan
c08d6b0f93
DEV: Only enable turbo_rspec retry on main branch (#25827)
Why this change?

Our tests are more stable these days and there is little to no need for
us to be retrying on PRs which helps to increase confidence in our test
suite since flaky tests are raised earlier.
2024-02-26 12:35:19 +08:00
Alan Guo Xiang Tan
ad0824b7e3
DEV: Fix connections timeout in system test (#25835)
Why this change?

This regressed in 6e9fbb5bab because we
had a `request.xhr?` check before we decide to block requests. However,
there could not none-xhr requests which we need to block as well at the
end of each system test when `@@block_requests` is true.

This also reverts commit 6437f27f90.
2024-02-23 16:03:46 +08:00
Alan Guo Xiang Tan
6437f27f90
DEV: Debug AR connection pool queue on CI (#25828)
Why this change?

On CI, we have been seeing flaky system tests because ActiveRecord is
unable to checkout a connection. This patch is meant to help us debug
which thread is not returning the connection to the queue.

Example of timeout issue: https://github.com/discourse/discourse/actions/runs/8012541636/job/21888013082
2024-02-23 13:37:37 +08:00
Alan Guo Xiang Tan
ad900ef9dd
Revert "DEV: Debug AR connection pool queue on CI (#25687)" (#25714)
This reverts commit 796af077c5.

We have not seen checkout timeout errors since c30aeafd9d
2024-02-16 10:11:46 +08:00
Alan Guo Xiang Tan
796af077c5
DEV: Debug AR connection pool queue on CI (#25687)
Why this change?

On CI, we have been seeing flaky system tests because ActiveRecord is
unable to checkout a connection. This patch is meant to help us debug
which thread is not returning the connection to the queue.
2024-02-15 14:00:30 +08:00
Alan Guo Xiang Tan
96ae5c395f
DEV: Set database checkout timeout to 10 on CI (#25604)
Why this change?

We have been seeing checkout timeouts happening on CI when using the
default of 5 seconds. This can happen in system tests when the server
has to process many requests using the same database connection.
Therefore, we will double the timeout for now and monitor if stuff
continues to timeout.
2024-02-08 10:35:55 +08:00
Alan Guo Xiang Tan
f9789e974b
DEV: Reduce pool size for test environment to 1 (#25584)
Why this change?

I have been investigating transaction related issues with our system
tests and I have a hard time figuring out what is causing the problem.
To help simplify our environment further, we will set the pool size in
the test environment to 1 so that it is impossible for us to be fetching
a different connection between the threads since they all share the
connection pool.

Also set `reaping_frequency` to `0` to ensure we don't reap any
connection ensuring the same connection is always used.
2024-02-07 11:10:17 +08:00
Alan Guo Xiang Tan
18d652c8f0
DEV: Create unlogged tables by default in the test environment (#25451)
Why this change?

In https://www.postgresql.org/docs/current/non-durability.html, it is
recommended to create unlogged tables to avoid WAL writes which can help
speed at performance at the expense of durability. In the CI env, there is no need for durability at all.
Therefore, we are going to be creating unlogged tables by default.

Co-authored-by: Ted Johansson <ted@discourse.org>
Co-authored-by: Rafael dos Santos Silva <xfalcox@gmail.com>
2024-01-29 09:57:58 +08:00
Jarek Radosz
ae2d9de164
DEV: Remove "(Ember 5)" suffix from CI job names (#25347) 2024-01-22 12:10:17 +01:00