Commit Graph
96 Commits
Author SHA1 Message Date
Kyle Carberry e4e60256ac fix: Use "make build" on deploy (#1261)
This was a missed item in https://github.com/coder/coder/pull/1259.
2022-05-02 14:04:45 -05:00
dependabot[bot] 1e6f2cf750 chore: bump hashicorp/setup-terraform from 1 to 2 (#1130)
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 1 to 2.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/v1...v2)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-25 12:59:47 -05:00
dependabot[bot] 8c27b4e23d chore: bump jaxxstorm/action-install-gh-release from 1.4.0 to 1.5.0 (#1131)
Bumps [jaxxstorm/action-install-gh-release](https://github.com/jaxxstorm/action-install-gh-release) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/jaxxstorm/action-install-gh-release/releases)
- [Commits](https://github.com/jaxxstorm/action-install-gh-release/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: jaxxstorm/action-install-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-25 11:17:15 -05:00
Steven Masley da3681246e chore: Bump protoc to 3.20.0 (#1104)
* chore: Bump protoc to 3.20.0
* Make gen with 3.20.0 protoc
2022-04-23 01:53:22 +00:00
Joe Previte db1127def1 chore: assign site/ to frontend (#1091) 2022-04-19 11:30:55 -07:00
Garrett Delfosse f46b4cf3da feat: generate typescript types from codersdk structs (#1047) 2022-04-19 00:45:22 +00:00
Kyle Carberry d202f20fdb feat: Add TURN proxying to enable offline deployments (#1000)
* Add turnconn

* Add option for passing ICE servers

* Log TURN remote address

* Add TURN server to coder start
2022-04-18 22:40:25 +00:00
Kyle Carberry 866205c145 feat: Sign MacOS binaries (#1060)
This fixes virus warnings when launching Coder on darwin.
2022-04-18 14:57:41 -05:00
Kyle Carberry 6dedd0caac ci: Don't run internal steps if forked (#1048)
This was causing CI to fail for contributions.
2022-04-16 13:51:01 -04:00
G r e y 148e7cddd3 chore: update semantic types (#1030)
Summary:

PRs like #1025 feel like they deserve a doc: type, but we didn't have one.
Furthermore our definitions for correct and fix were stale.
2022-04-15 16:26:20 -04:00
Colin Adler a13cceea3b chore: run github actions on pull_request instead of push (#1035) 2022-04-15 15:55:13 -04:00
Colin Adler 732e0f063a chore: add dependabot config for terraform examples (#1014) 2022-04-14 16:14:49 -04:00
G r e y f3f39f3770 ci: remove building from test/js (#1005)
Summary:

There's no reason to build in `test/js`, since we have e2e tests that build.

Details:

- Remove superfluous `yarn build` from `test/js` step in CI

Relates to #1004 but does not fix it.
2022-04-14 16:32:34 +00:00
Kyle Carberry 4f0f216015 ci: Add timeouts to limit hanging execution (#976)
For some reason, CI hung for ~6hours last night on `main`.

https://github.com/coder/coder/runs/5982978236?check_suite_focus=true

The fact that it went this long is bad, but it should have cancelled
much earlier.
2022-04-12 09:35:17 -05:00
Kyle Carberry e8b1a57929 feat: Add support for VS Code and JetBrains Gateway via SSH (#956)
* Improve CLI documentation

* feat: Allow workspace resources to attach multiple agents

This enables a "kubernetes_pod" to attach multiple agents that
could be for multiple services. Each agent is required to have
a unique name, so SSH syntax is:

`coder ssh <workspace>.<agent>`

A resource can have zero agents too, they aren't required.

* Add tree view

* Improve table UI

* feat: Allow workspace resources to attach multiple agents

This enables a "kubernetes_pod" to attach multiple agents that
could be for multiple services. Each agent is required to have
a unique name, so SSH syntax is:

`coder ssh <workspace>.<agent>`

A resource can have zero agents too, they aren't required.

* Rename `tunnel` to `skip-tunnel`

This command was `true` by default, which causes
a confusing user experience.

* Add disclaimer about editing templates

* Add help to template create

* Improve workspace create flow

* Add end-to-end test for config-ssh

* Improve testing of config-ssh

* Fix workspace list

* feat: Add support for VS Code and JetBrains Gateway via SSH

This fixes various bugs that made this not work:
- Incorrect max message size in `peer`
- Incorrect reader buffer size in `peer`
- Lack of SFTP support in `agent`
- Lack of direct-tcpip support in `agent`
- Misuse of command from session. It should always use the shell
- Blocking on SSH session, only allowing one at a time

Fixes #833 too.

* Fix config-ssh command with socat
2022-04-12 00:17:18 +00:00
G r e y 78e727a1c4 chore: consolidate js, ts/js labels (#957)
Dependabot automagically applies the `javascript` label, but we use `typescript/js` elsewhere.
2022-04-11 18:29:35 +00:00
dependabot[bot] 9474f66d27 chore: bump actions/setup-go from 2 to 3 (#948)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 08:54:24 -05:00
G r e y 0a2903c5c5 chore: assign soft ownership for xServices (#932) 2022-04-08 15:17:24 -04:00
Ben Potter c6a0078c35 fix: assign labels for issue templates (#919) 2022-04-07 21:04:56 +00:00
Joe PreviteandG r e y 17848b3b86 chore: add feature request issue template (#913)
* chore: add feature request issue template

* Update .github/ISSUE_TEMPLATE/feature.md

Co-authored-by: G r e y <grey@coder.com>

* Update .github/ISSUE_TEMPLATE/feature.md

Co-authored-by: G r e y <grey@coder.com>

Co-authored-by: G r e y <grey@coder.com>
2022-04-07 10:35:32 -07:00
dependabot[bot] 2e5859f226 chore: bump codecov/codecov-action from 2 to 3 (#898)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-07 11:41:35 -05:00
Joe Previte ce7af872ff docs: add PR template (#873) 2022-04-07 15:27:25 +00:00
Kyle Carberry 770d212094 ci: Enable forks to run CI (#910)
* ci: Enable forks to run CI

All steps that require tokens are optional for forks,
and will be skipped if the owner is not "coder".

* Empty commit to force CI
2022-04-07 08:33:10 -05:00
G r e y 579fd4bc89 chore: speed up chromatic ci (#904)
This is an oversight from #896 . It turns out that because we use the GitHub integration with Chromatic, we don't need to wait for the results to be reported in the action - they get reported in the other checks created by Chromatic.

This option was spit-out in a check:

https://github.com/coder/coder/runs/5859427236?check_suite_focus=true#step:4:38

Relates to #444
2022-04-06 22:40:30 +00:00
G r e y 5782879f2f chore: configure chromatic snapshot tests (#896)
Resolves: #444

Summary:

This commit installs and configures a GH action for chromatic. Chromatic
is used for snapshot testing build-over-build.

Details:

* chore: install chromatic

* chore: add chromatic package.json script

Suggested by the docs for convenience so that we can run chromatic like:

```console
yarn run chromatic ...
```

* chore: gitignore storybook builds

* ci: configure chromatic

This action configures chromatic to run in CI on pushes to all branches.
By running this in CI, we get the following:

- snapshot (build-over-build)
- checks in our CI

The snapshots and build-over-build behavior are per branch; this way we
can work on a feature branch without worrying about changes being made
to mainline independently.

* chore: remove manual storybook build from CI

This is now the responsibility of Chromatic
2022-04-06 17:51:49 -04:00
Joe Previte eefca43064 chore: rename .yaml to .yml (#895)
* chore: rename .yml to .yaml

* chore: remove .yml from prettierrc
2022-04-06 21:32:59 +00:00
Joe Previte 8813788c28 chore: add GitHub issue templates (#889) 2022-04-06 10:59:22 -07:00
G r e y fb4cab78e0 chore: fix site codeowners (#862) 2022-04-04 18:53:51 +00:00
G r e y c2a025d0d7 chore: configure dependabot to trigger weekly (#849) 2022-04-04 14:40:35 +00:00
Colin Adler fd523100bf chore: split queries.sql into files by table (#762) 2022-04-01 15:45:23 -05:00
Kyle Carberry b2261030e6 fix: Build site in release process (#785)
The static site wasn't building prior, so authenticating via CLI was broken!
2022-03-31 18:44:19 +00:00
Kyle Carberry 1b43a4ab91 ci: Limit scopes with semantic (#773)
This should enfore a standardized commit message without a scope.

The repository isn't complex enough to require scopes yet, so we
can punt this down the road!
2022-03-31 10:41:48 -05:00
Colin Adler b33e457f57 chore: use go 1.18 everywhere in ci (#641)
Somehow I missed these?
2022-03-29 19:10:22 +00:00
Colin Adler be8389fd74 chore: update to go 1.18 (#628)
* add make lint to Makefile
2022-03-28 19:14:40 +00:00
Kyle Carberry 27c24de764 chore: Reduce dependabot frequency to weekly (#560)
It was tiring seeing 5+ PRs a day for dependency updates.
Reducing this to a week should save some time!
2022-03-25 11:21:20 -05:00
Kyle Carberry d371a66447 ci: Fix dogfood installation by forcing default configurations (#557)
* ci: Fix dogfood installation by forcing default configurations

The dpkg prompt to override config files was
appearing, but this will auto-approve it.

* Add CAP_NET_BIND_SERVICE to allow listening on :443
2022-03-24 15:02:09 -05:00
Kyle CarberryandColin Adler bf00487174 feat: Add TLS support (#556)
* feat: Add TLS support

This adds numerous flags with inspiration taken from Vault
for configuring TLS inside Coder.

This enables secure deployments without a proxy, like Cloudflare.

* Update cli/start.go

Co-authored-by: Colin Adler <colin@coder.com>

* Fix flag help in coder.env

Co-authored-by: Colin Adler <colin@coder.com>
2022-03-24 14:21:05 -05:00
Kyle Carberry ddd86ab547 feat: Add systemd service and production deployment (#545)
* feat: Add systemd service and production deployment

This modifies CI to use a dpkg produced from release to update and
run Coder on a tiny VM in GCP.

It's intentionally kept simple, because customers should
be able to get this same easy install experience.

* Update globalSetup.ts

* Update globalSetup.ts

* Update globalSetup.ts

* Update coder.yaml

* Use pinned version of Go
2022-03-24 15:07:33 +00:00
Kyle Carberry d665263d37 fix: Improve coverage by uploading PostgreSQL tests (#532)
This also adds a test for workspace creation via the CLI.
2022-03-23 10:03:28 -05:00
Kyle Carberry 26d24f4508 chore: Improve CI builds by caching Go modules (#528)
* chore: Improve CI builds by caching Go modules

* Skip running with `race` on non-Linux systems

* Fix darwin file descriptor error

* Fix log after close

* Improve PostgreSQL test speeds

* Fix parallel connections with PostgreSQL tests

* Fix CI flake

* Separate test/go into PostgreSQL
2022-03-22 17:09:04 -05:00
Kyle Carberry c451f4e685 feat: Add templates to create working release (#422)
* Add templates

* Move API structs to codersdk

* Back to green tests!

* It all works, but now with tea! 🧋

* It works!

* Add cancellation to provisionerd

* Tests pass!

* Add deletion of workspaces and projects

* Fix agent lock

* Add clog

* Fix linting errors

* Remove unused CLI tests

* Rename daemon to start

* Fix leaking command

* Fix promptui test

* Update agent connection frequency

* Skip login tests on Windows

* Increase tunnel connect timeout

* Fix templater

* Lower test requirements

* Fix embed

* Disable promptui tests for Windows

* Fix write newline

* Fix PTY write newline

* Fix CloseReader

* Fix compilation on Windows

* Fix linting error

* Remove bubbletea

* Cleanup readwriter

* Use embedded templates instead of serving over API

* Move templates to examples

* Improve workspace create flow

* Fix Windows build

* Fix tests

* Fix linting errors

* Fix untar with extracting max size

* Fix newline char
2022-03-22 13:17:50 -06:00
dependabot[bot] 2c7ad59a5d chore: bump actions/checkout from 2 to 3 (#507)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21 23:58:13 +00:00
dependabot[bot] f24358e0c6 chore: bump actions/cache from 2 to 3 (#506)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21 23:57:11 +00:00
64d9d00052 refactor: Add nightly test stability workflow (aka The Gauntlet) (#343)
Co-authored-by: Jonathan Yu <jonathan@coder.com>
Co-authored-by: Kyle Carberry <kyle@coder.com>
Co-authored-by: G r e y <vapurrmaid@pm.me>
2022-03-19 23:07:31 +00:00
Colin Adler 706e60bb3b chore: pluralize table names (#463) 2022-03-17 18:10:46 -05:00
G r e y 5a42e172f1 chore: add CODEOWNERS (#459)
Summary:

Partial port of v1 CODEOWNERS -> v2

Impact:

Coder FE will be pinged to review changes in site. We do not have a check that
requires an explicit approval, but it helps review cycle iteration
2022-03-16 07:00:45 +00:00
Bryan 20faf897c9 fix: Test flake when installing yarn dependencies on MacOS (#436)
This fixes #433 - a test flake in E2E (intermittent `ESOCKETTIMEDOUT` errors on MacOS).

The main issue is that, occasionally, for very large dependencies (like `@material-ui/icons`) - yarn can actually time out! We researched this in-depth in v1: https://github.com/coder/m/pull/10040 and fixed it successfully there, by increasing the timeout for yarn.

However, this also highlighted the fact that our `node_modules` caching behavior wasn't correct - we should very rarely see a timeout issue like this, because `@material-ui/icons` should be cached.

It turns out that we weren't falling back to the latest cached `node_modules` if there was a miss - so anytime the lock file changed, we'd  invalidate the cache, and not restore the previous one. This can be improved by using the [`restore-keys`](https://github.com/coder/m/pull/10040) parameter of the [`@actions/cache`](https://github.com/actions/cache)... and in fact we already do this for the `go` dependencies.

So this fix does two things:
- Improve the caching behavior, such that we should rarely have to install `@material-ui/icons` (and other large dependencies) 
- When we do have to install, update the timeout so that we can avoid random `ESOCKETTIMEDOUT` errors
2022-03-14 11:49:49 -07:00
Bryan ec077c6191 refactor: Migrate from Next.js to pure webpack config (#360)
Fix for #348 - migrate our NextJS project to a pure webpack project w/ a single bundle

- [x] Switch from `next/link` to `react-router-dom`'s link 

> This part was easy - just change the import to `import { Link } from "react-router-dom"` and `<Link href={...} />` to `<Link to={...} />`

- [x] Switch from `next/router` to `react-router-dom`'s paradigms (`useNavigation`, `useLocation`, and `useParams`)

> `router.push` can be converted to `navigate(...)` (provided by the `useNavigate` hook)
> `router.replace` can be converted `navigate(..., {replace: true})` 
>  Query parameters (`const { query } = useRouter`) can be converted to `const query = useParams()`)

- [x] Implement client-side routing with `react-router-dom`

> Parameterized routes in NextJS like `projects/[organization]/[project]` would look like:
> ```
>               <Route path="projects">
>                    <Route path=":organization/:project">
>                    <Route index element={<ProjectPage />} />
>                  </Route>
>               </Route>
> ```

I've hooked up a `build:analyze` command that spins up a server to show the bundle size:
<img width="1303" alt="image" src="https://user-images.githubusercontent.com/88213859/157496889-87c5fdcd-fad1-4f2e-b7b6-437aebf99641.png">

The bundle looks OK, but there are some opportunities for improvement - the heavy-weight dependencies, like React, ReactDOM, Material-UI, and lodash could be brought in via a CDN: https://stackoverflow.com/questions/50645796/how-to-import-reactjs-material-ui-using-a-cdn-through-webpacks-externals
2022-03-12 12:51:05 -08:00
Kyle Carberry ca768e7e83 fix: Install goreleaser on deploy (#408) 2022-03-08 04:22:47 +00:00
Kyle Carberry 3eb6fb75d6 feat: Automate releases with goreleaser (#404) 2022-03-07 19:50:37 -06:00