Code AI platform with Code Search & Cody
Go to file
Jean-Hadrien Chabran 0372a11e2a
bzl: tune //client/web:test to run faster (#49897)
After a lot of trial and error, we found out that the following things
dramatically improved the duration of the `//client/web:test` duration.

Before: 600s 
After: 90s

- we fixed affinity issues that were scheduling stateless agents on the
bazel nodes and thus were affecting resources
- we set the `patch_node_fs` to false, because it's known to affect
speed (this dropped about 100s)
- we disable the sandbox for that particular test, because when
disabling the above setting, it doesn't really make sense as the fs can
escape the sandbox anyway.
- we use sharding, which dramatically improve the speed. We came up with
6 empirically.
- this required bumping the `rules_jest` dep to the latest commit which
fixes another bug preventing to use `shard_count` when running the
snapshots as well.

## Test plan

<!-- All pull requests REQUIRE a test plan:
https://docs.sourcegraph.com/dev/background-information/testing_principles
-->

See:
https://buildkite.com/sourcegraph/sourcegraph/builds/209604#01870e10-8639-445a-828b-3e79de22ac81/33-562

## App preview:

- [Web](https://sg-web-jh-bzl-bench-webtest.onrender.com/search)

Check out the [client app preview
documentation](https://docs.sourcegraph.com/dev/how-to/client_pr_previews)
to learn more.
2023-03-23 11:18:10 +00:00
.aspect ci: bazel build and test in a single job (#49313) 2023-03-14 20:10:43 +02:00
.buildkite ci: be more precise when tearing down test DBs (#49411) 2023-03-16 14:46:49 +02:00
.github own: add more test CODEOWNERS entries for the team (#49427) 2023-03-15 16:37:39 +00:00
.vscode cody: fix build, add feedback buttons and debug view (#49234) 2023-03-14 09:46:13 -07:00
client bzl: tune //client/web:test to run faster (#49897) 2023-03-23 11:18:10 +00:00
cmd bazel: routine configure run (#49889) 2023-03-23 11:32:49 +02:00
dev release-tool: auto create backport label on branch cut (#49739) 2023-03-21 11:33:49 -07:00
doc docs: update sourcegraph.sourcegraph.com links to public version + use SG links instead of GH (#49894) 2023-03-23 11:55:15 +01:00
docker-images Update rules_rust to fix the issue with repinning the rust crates (#49698) 2023-03-21 11:02:33 +01:00
enterprise bzl: tune //client/web:test to run faster (#49897) 2023-03-23 11:18:10 +00:00
internal migration/definition: Suggest sg update for local dev (#49836) 2023-03-23 10:08:37 +00:00
lib bazel: fix buf files (#49444) 2023-03-15 20:21:38 +00:00
migrations bazel: routine configure run (#49889) 2023-03-23 11:32:49 +02:00
monitoring Search: small fixes to ranking dashboards (#49747) 2023-03-21 08:17:42 -07:00
schema packages: improve and expand docs (#49774) 2023-03-21 17:47:57 +00:00
third_party bazel: update buildfiles (#47744) 2023-02-16 16:32:59 +01:00
third-party-licenses remove code host native tooltip toggle, hover alerts, command palette, notifs (#48688) 2023-03-06 20:36:18 -08:00
ui/assets bazel: add bazel build,tests for client/* (#46193) 2023-02-28 20:46:03 -08:00
wolfi-images Add Wolfi base images (#47034) 2023-01-31 12:09:09 +00:00
wolfi-packages test the code host connection for Perforce (fixes #43855) (#49069) 2023-03-10 13:16:22 -08:00
.bazel_fix_commands.json bazel: add command sets that uses bazel under the hood (#48460) 2023-03-02 11:31:51 +01:00
.bazelignore bazel: wildcard jest tests (#49282) 2023-03-17 03:38:49 -07:00
.bazeliskrc chore: update to Aspect CLI 5.2.1 (#48798) 2023-03-07 10:13:33 +01:00
.bazelrc build: don't bust Bazel analysis cache when switching between build & test (#48694) 2023-03-06 00:43:23 -08:00
.bazelversion build: upgrade bazel to 6.0.0 (#47049) 2023-01-29 17:37:55 +01:00
.browserslistrc web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.dockerignore web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.editorconfig chore: Add .lua to editorconfig. (#44267) 2022-11-11 15:25:32 +08:00
.eslintignore [experiment] Merge SvelteKit prototype into main (#47238) 2023-02-13 17:53:23 +01:00
.eslintrc.js Better import ordering with prettier (#48188) 2023-03-13 08:37:23 +00:00
.gitattributes bazel: Build syntax-highlighter (#48703) 2023-03-08 19:08:09 +08:00
.gitignore Sourcegraph App (single-binary branch) (#46547) 2023-01-19 17:35:39 -07:00
.golangci-warn.yml internal/resources-report: remove tool (#46941) 2023-01-25 10:34:59 -08:00
.golangci.yml bazel: fix remaining backend tests (#47961) 2023-03-01 17:03:01 +00:00
.graphqlrc.yml Support multiple GraphQL schema files (#20077) 2021-04-19 14:35:49 +02:00
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: update replacements for Joe (#29614) 2022-01-12 10:56:56 +08:00
.mocharc.js build: still need BAZEL_BINDIR for webpack_bundle custom rule (#48796) 2023-03-07 20:02:11 -08:00
.npmrc web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
.percy.yml Update browser extention installation detection logic on web (#32449) 2022-03-14 23:29:39 +06:00
.prettierignore Better import ordering with prettier (#48188) 2023-03-13 08:37:23 +00:00
.stylelintignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintrc.json web: drop bootstrap depenedency (#41401) 2022-09-07 03:11:26 -07:00
.tool-versions cody: fix build, add feedback buttons and debug view (#49234) 2023-03-14 09:46:13 -07:00
.trivyignore ci: ignore benign CVE-2021-43816 in prometheus (#31069) 2022-02-11 16:49:10 +00:00
babel.config.jest.js build: still need BAZEL_BINDIR for webpack_bundle custom rule (#48796) 2023-03-07 20:02:11 -08:00
babel.config.js bazel: add bazel build,tests for client/* (#46193) 2023-02-28 20:46:03 -08:00
BUILD.bazel nogo: add exportloopref linter (#49005) 2023-03-21 19:14:56 +02:00
CHANGELOG.md batches: update changelog (#49133) 2023-03-20 19:44:16 +00:00
CONTRIBUTING.md Docs: Fix docs page link in main CONTRIBUTING.md (#45160) 2022-12-05 14:57:45 +01:00
deps.bzl bazel: routine configure run (#49889) 2023-03-23 11:32:49 +02:00
doc.go
flake.lock nix: use go1.20 (#47541) 2023-02-13 12:19:12 +02:00
flake.nix nix: use go1.20 (#47541) 2023-02-13 12:19:12 +02:00
gen.go chore: Update go-mockgen (#44305) 2022-11-11 19:24:00 +00:00
go.mod Chore: upgrade to golang-lru/v2 (#49870) 2023-03-22 21:11:35 +00:00
go.sum Chore: upgrade to golang-lru/v2 (#49870) 2023-03-22 21:11:35 +00:00
graphql-schema-linter.config.js Support multiple GraphQL schema files (#20077) 2021-04-19 14:35:49 +02:00
gulpfile.js web: drop legacy GraphQL schema generator (#45945) 2022-12-25 18:10:20 -08:00
jest.config.base.js bazel: wildcard jest tests (#49282) 2023-03-17 03:38:49 -07:00
jest.config.js tests: use glob for jest projects field (#29681) 2022-01-13 01:11:52 -08:00
jest.snapshot-resolver.js bazel: wildcard jest tests (#49282) 2023-03-17 03:38:49 -07:00
LICENSE update licensing language (#25620) 2021-10-04 15:40:59 +01:00
LICENSE.apache
LICENSE.enterprise
lighthouserc.js web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
linter_deps.bzl nogo: add exportloopref linter (#49005) 2023-03-21 19:14:56 +02:00
mockgen.temp.yaml insights: remove internal/insights package (#49712) 2023-03-21 10:02:46 +00:00
mockgen.test.yaml codeintel: Cleanup GraphQL utilities (#49726) 2023-03-21 11:25:43 -05:00
mockgen.yaml mocks: Reorganize mock definitions into multiple files (#36967) 2022-06-27 20:59:16 +00:00
nogo_config.json nogo: add exportloopref linter (#49005) 2023-03-21 19:14:56 +02:00
package.json Linkify commit messages and commit bodies (#49841) 2023-03-23 09:05:40 +00:00
pnpm-lock.yaml Linkify commit messages and commit bodies (#49841) 2023-03-23 09:05:40 +00:00
pnpm-workspace.yaml cody: fix build, add feedback buttons and debug view (#49234) 2023-03-14 09:46:13 -07:00
postcss.config.js extensibility: add featured extensions to registry (#21665) 2021-06-10 13:55:20 -04:00
prettier.config.js Better import ordering with prettier (#48188) 2023-03-13 08:37:23 +00:00
README.md Update README.md (#49632) 2023-03-17 21:28:21 +01:00
renovate.json chore: add test plans to bot and release tool PRs (#31351) 2022-02-22 07:53:25 -08:00
SECURITY.md
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml local dev: enable gRPC zoekt client communication (#49553) 2023-03-17 06:54:00 +04:00
shell.nix nix: update checksum for bumbped pnpm (#49416) 2023-03-15 15:00:11 +00:00
svgo.config.js Performance: Optimize static SVG assets with SVGO (#26285) 2021-10-27 15:27:36 +01:00
tsconfig.all.json cody: fix build, add feedback buttons and debug view (#49234) 2023-03-14 09:46:13 -07:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.eslint.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
WORKSPACE bzl: tune //client/web:test to run faster (#49897) 2023-03-23 11:18:10 +00:00

DocsContributingTwitter

Build status Scorecard Latest release Discord Contributors


Understand, fix, and automate across your codebase with Sourcegraph's code intelligence platform

 


4.0 Features

  • Understand usage and search structure with high-level aggregations of search results
  • A faster, simpler search experience
  • Configure precise code navigation for 9 languages (Ruby, Rust, Go, Java, Scala, Kotlin, Python, TypeScript, JavaScript) in a matter of minutes with auto-indexing
  • Your favorite extensions are now available by default
  • Quickly access answers within your codebase with a revamped reference panel

🏗️ High-leverage ways to improve your entire codebase

  • Make changes across all of your codebase at enterprise scale with server-side Batch Changes (beta)
    • Run large-scale or resource-intensive batch changes without clogging your local machine
    • Run large batch changes quickly by distributing them across an autoscaled pool of compute instances
    • Get a better debugging experience with the streaming of logs directly into Sourcegraph.

☁️ Dedicated Sourcegraph Cloud instances for enterprise

  • Sourcegraph Cloud now offers dedicated, single-tenant instances of Sourcegraph

📈 Advanced admin capabilities

  • Save time upgrading to Sourcegraph 4.0 with multi-version upgrades
  • View usage and measure the value of our platform with new and enhanced in-product analytics
  • Uncover developer time saved using Browser and IDE extensions
  • Easily export traces using OpenTelemetry
  • Quickly see the status on your repository and permissions syncing
  • Measure precise code navigation coverage with an enhanced analytics dashboard

Deploy Sourcegraph

Self-hosted

Local machine

Development

Refer to the Developing Sourcegraph guide to get started.

Documentation

The doc directory has additional documentation for developing and understanding Sourcegraph:

License

This repository contains both OSS-licensed and non-OSS-licensed files. We maintain one repository rather than two separate repositories mainly for development convenience.

All files in the enterprise and client/web/src/enterprise fall under LICENSE.enterprise.

The remaining files fall under the Apache 2 license. Sourcegraph OSS is built only from the Apache-licensed files in this repository.