Code AI platform with Code Search & Cody
Go to file
Noah S-C 4e31a4e38d
feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877)
Currently, all backend integration tests transitively depend on the client bundle. This results in rebuilds of the closure, and a (likely) cache miss on the test, when modifying any client-side files. 
Given that the client bundle isnt needed for these tests, we can create targets that don't include the client bundle in its transitive closure, which should in theory improve the cache hit for backend integration tests by not having client side changes invalidate it. This would also be beneficial in local env, to keep frontend rebuilds down

To do this, we still need to create a `web.manifest.json` file due to some unfortunate requirement on that file existing as part of initializing the sourcegraph instance. For this I just create an empty json file, `select` this instead of the client bundle target in client/web/dist/BUILD.bazel based on a `//:integration_testing_enabled` config setting, and creating a `go_binary`-wrapping bazel rule + macro that automatically applies a transition to set this to true `go_binary_nobundle`, and using that rule for the specific `//cmd/{server,frontend}:{server,frontend}_nobundle` binary rules (along with the relevant `oci_{image,tarball}` etc rules to consume it).



## Test plan

- Integration tests in CI still work
- `bazel cquery 'kind("js_library", deps(//cmd/frontend:image_nobundle))'`, `bazel cquery 'kind("js_library", deps(//cmd/server:image_nobundle))'`, ``bazel cquery 'kind("js_library", deps(//testing:backend_integration_test))'` etc  all return empty set
- Release test with marker in web bundle to ensure released images contain the web bundle via `sg release run test --version 5.4.2` (commenting out other tests for brevity)
2024-05-28 14:32:48 +01:00
.apko Build images end-to-end using Bazel v2 (#61845) 2024-04-12 16:18:43 +01:00
.aspect bazel: bump to latest aspect_rules_js, rules_nodejs, aspect_bazel_lib, aspect_rules_ts, aspect_rules_swc (#62874) 2024-05-23 10:14:30 +02:00
.buildkite chore(ci): remove backcompat mitigation (#62658) 2024-05-14 11:00:35 +01:00
.github chore(release): add changelog section to pr template (#62902) 2024-05-28 13:06:03 +00:00
.vscode bazel: transcribe test ownership to bazel tags (#62664) 2024-05-16 15:51:16 +01:00
client feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
cmd feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
dev chore(local): catch bazel-do issues before push (#62943) 2024-05-28 15:16:13 +02:00
doc bazel: Add container test for s3proxy (#62893) 2024-05-24 14:02:37 +01:00
docker-images bazel: Add container test for s3proxy (#62893) 2024-05-24 14:02:37 +01:00
internal chore(release): quick fix latest version after release (#62938) 2024-05-28 08:10:47 +02:00
lib feat/enterprise-portal: ConnectRPC layer for {Get/List}CodyGatewayAccess (#62771) 2024-05-27 13:39:57 -07:00
migrations fix: update links for dev docs (#62758) 2024-05-17 13:47:34 +02:00
monitoring fix: update links for dev docs (#62758) 2024-05-17 13:47:34 +02:00
schema fix: Make most syntaxHighlighting config fields optional (#62817) 2024-05-22 06:25:33 +00:00
testing feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
third_party feat: Add new GraphQL API for getting occurrences (#62531) 2024-05-24 09:20:52 +08:00
third-party-licenses chore: Completely sunset qdrant (#62018) 2024-04-22 18:00:57 +02:00
tools Update release calendar (#62887) 2024-05-23 14:46:39 -07:00
ui/assets feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
wolfi-images security: Auto-update package lockfiles for Sourcegraph base images (#62749) 2024-05-24 17:56:45 +01:00
wolfi-packages s3proxy: Fix permissions on s3proxy package binary (#62907) 2024-05-24 15:55:00 +00:00
.bazel_fix_commands.json SG Start Bazel Improvements Take 2 (#60687) 2024-03-05 01:44:21 -08:00
.bazelignore Create a shared Cody Ignore dataset (#61968) 2024-05-09 13:18:35 +00:00
.bazeliskrc chore: upgrade to Aspect CLI 5.8.19 (#59203) 2024-01-02 15:13:24 +01:00
.bazelrc chore: Enable rustfmt (#62371) 2024-05-02 20:56:45 +08:00
.bazelversion bazel: bump to 7.1 (#61092) 2024-03-13 14:52:25 +00:00
.dockerignore use esbuild for client/web builds (#57365) 2023-10-23 10:59:06 -07:00
.editorconfig proto: Add editorconfig to ident using two spaces (#57281) 2023-10-03 00:39:42 +00:00
.eslintrc.js Revert vs-code extension deleting (#61258) 2024-03-20 13:53:27 +01:00
.gitattributes dev/linearhooks: add POC (#62367) 2024-05-07 00:14:05 -07:00
.gitignore ci: emit Bazel BEP file (#62010) 2024-04-23 16:27:35 +01:00
.graphqlrc.yml
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: add entries for Eric and Renovate (#50966) 2023-04-25 09:42:22 +02:00
.mocharc.js reapply "switch from jest to vitest for faster, simpler tests (#57886)" (#58145) 2023-11-07 12:00:18 +02:00
.npmrc pnpm: remove update notifier message (#51630) 2023-05-10 08:53:39 +02:00
.percy.yml ci: percy defer snapshots upload (#54116) 2023-06-25 18:57:49 -07:00
.pre-commit-config.yaml exclude pnpm-lock.yaml from precommit (#61158) 2024-03-14 15:35:14 +00:00
.prettierignore dev/linearhooks: add POC (#62367) 2024-05-07 00:14:05 -07: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
.swcrc use swc instead of babel for faster bazel typescript transpilation (#57912) 2023-11-02 22:49:03 -07:00
.tool-versions bump to Go 1.22.1 (#60902) 2024-03-06 17:38:43 -07:00
.trivyignore
BUILD.bazel feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
CHANGELOG.md feat: incomplete datapoints can now resolve the affected repositories (#62756) 2024-05-27 10:32:58 +00:00
CODENOTIFY nix: update pnpm hash (#51512) 2023-05-05 12:51:59 +00:00
CONTRIBUTING.md fix: update links for dev docs (#62758) 2024-05-17 13:47:34 +02:00
deps.bzl feat/enterprise-portal: ConnectRPC layer for {Get/List}CodyGatewayAccess (#62771) 2024-05-27 13:39:57 -07:00
doc.go
eslint-relative-formatter.js bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
flake.lock nix: bump to bazel 7.1 (#61326) 2024-03-22 16:57:50 +00:00
flake.nix nix: build pg-utils with nix [static edition] (#61734) 2024-04-09 20:24:19 +01:00
gen.go chore: fixup go-mockgen run statement (#61028) 2024-03-12 13:06:36 +00:00
go.mod feat/enterprise-portal: ConnectRPC layer for {Get/List}CodyGatewayAccess (#62771) 2024-05-27 13:39:57 -07:00
go.sum feat/enterprise-portal: ConnectRPC layer for {Get/List}CodyGatewayAccess (#62771) 2024-05-27 13:39:57 -07:00
graphql-schema-linter.config.js
LICENSE relicense all paths other than MIT licensed code, client/cody*, jetbrains, VS code, and browser extension to enterprise (#53345) (#53345) 2023-06-13 10:28:11 -07:00
LICENSE.enterprise Update Enterprise license copyright notice (#62467) 2024-05-06 17:35:32 +00:00
linter_deps.bzl chore: Remove redundant loop captures (#62264) 2024-04-30 07:57:21 -06:00
mockgen.temp.yaml gitserver: Add CommitLog API to replace client-side Commits (#62606) 2024-05-21 15:21:58 +02:00
mockgen.test.yaml build-tracker: emit agent state-change webhook events to BigQuery (#62598) 2024-05-12 16:20:04 +02:00
mockgen.yaml bazel: native go-mockgen in Bazel (#60386) 2024-02-16 13:26:48 +00:00
nogo_config.json chore: Remove redundant loop captures (#62264) 2024-04-30 07:57:21 -06:00
package.json Create a shared Cody Ignore dataset (#61968) 2024-05-09 13:18:35 +00:00
pnpm-lock.yaml Web: add mermaid diagram rendering (#62678) 2024-05-16 14:54:43 -04:00
pnpm-workspace.yaml Create a shared Cody Ignore dataset (#61968) 2024-05-09 13:18:35 +00:00
postcss.config.js
prettier.config.js clean up Cody CSS to increase shareability and improve display in web app (#50279) 2023-04-03 12:29:05 -07:00
README.md Update broken link for our Development docs in the README file (#62638) 2024-05-13 14:13:45 -07:00
release.yaml feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
renovate.json Require approval to run Renovate (#57608) 2023-10-18 20:36:53 +02:00
SECURITY.md
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml feat/enterprise-portal: ConnectRPC layer for {Get/List}CodyGatewayAccess (#62771) 2024-05-27 13:39:57 -07:00
shell.nix bazel: use pgutil binaries from GCS instead of from the host (#61741) 2024-04-11 18:00:21 +01:00
stamp_tags.bzl Switch to OCI/Wolfi based image (#52693) 2023-06-02 12:12:52 +02:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.json release: drop legacy release tooling (#61220) 2024-04-09 14:29:35 -05:00
vitest.shared.ts code intel: Don't rely on URL polyfill to correctly parse git: URIs (#58258) 2023-11-17 19:32:46 +01:00
vitest.workspace.ts vitest: Fix workspace config wrt client/web/ (#58397) 2023-11-17 08:22:46 +00:00
WORKSPACE bazel: bump to latest aspect_rules_js, rules_nodejs, aspect_bazel_lib, aspect_rules_ts, aspect_rules_swc (#62874) 2024-05-23 10:14:30 +02:00

DocsContributingTwitterDiscord

Build status Scorecard Latest release Discord Contributors


Sourcegraph makes it easy to read, write, and fix code—even in big, complex codebases.

  • Code search: Search all of your repositories across all branches and all code hosts.
  • Code intelligence: Navigate code, find references, see code owners, trace history, and more.
  • Fix and refactor: Roll out large-scale changes to many repositories at once and track big migrations.

Getting started



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 primarily non-OSS-licensed files. See LICENSE.

Copyright (c) 2018-present Sourcegraph Inc.