* fix: use * for test plugin engines
This removes the need to update this version with every version change.
* refactor: use npm-package in release assets
This adds a new job to `release.yaml` to upload the `npm-package` to the
release assets which will also allow us to download it in the
`publish.yaml` workflow.
* docs: update release instructions
* docs: add toc to CODE OF CONDUCT
* chore: add prettier ignore blocks to docs
* chore: update styles for Dockerfile
* refactor: separate prettier, doctoc
This does a couple things:
- update `.prettierignore`
- split `prettier` and `doctoc` commands. you can still run with `yarn
fmt`
- delete `fmt.sh` and add `doctoc.sh`
By doing so, we can run tasks in parallel in CI and we should also have
less false positives than before with `yarn fmt` locally.
* refactor: update prettier job, add doctoc
This modifies the prettier job to use actionsx/prettier. It also adds a
job for `doctoc`.
* chore: upgrade to prettier 2.7.1
* chore: pin doctoc to 2.0.0
* fixup!: add .pc to prettierignore
* feat: add --cache to prettier cmd
* refactor: remove stylelint
* refactor: move shellcheck to separate job
* refactor: add helm script and job
* refactor: add eslint job and yarn script
* fix(test/tsconfig): exclude test-plugin
* refactor: delete lint, add typecheck job
* refactor: remove prebuild
* wip: add notes about unit test refactor
* refactor: delete buggy socket test
This test was really added to in get cover specific lines but it's buggy
and only passes sometimes locally. I think it's okay to remove because:
- it's an implementation detail (not user facing)
- not preventing any specific regressions
* refactor: move test-plugin to integration suite
This seems more appropriate given this tests how a plugin might work
within code-server.
* wip
* wip: refactor vscode integration tests
* refactor: move unit tests to separate job
* fix: formatting
* Revert "wip: refactor vscode integration tests"
This reverts commit 13286bf4c9.
* Revert "refactor: move unit tests to separate job"
This reverts commit 6c87b540b4.
* feat: collect codecov integration tests
* fixup! feat: collect codecov integration tests
* fixup! feat: collect codecov integration tests
* fixup!: move helm step
* fixup!: update ids for caching
* trigger ci
* trigger ci
* chore: clean up names in security.yaml
* fixup!: remove .tsx
* fixup!: change to src/**"
* fixup!: move helm cmd to yaml
* fixup!: always build test plugin
* fixup!: fix plugin typings
* fixup! add back flakey test
* fixup!: only install helm deps if changes
* fixup!: revert node mod caching
* dont keep, test for asher
* fixup!: add make to centos
* refactor: add test:native
This adds a new script to run native tests (i.e. --help which should run
in ci on all platforms).
* try updating glibc
* try 2.25
* Revert "refactor: move test-plugin to integration suite"
This reverts commit bc02005dc0.
I couldn't get past some GLIBC errors in CI so moving back to unit
tests.
* Revert "try updating glibc"
This reverts commit 02ed560f22.
* fixup!
* asher: again
* try this for ts changes
* fixup
* refactor: scripts.yml -> scripts.yaml
* fixup!: move lint-sh to scripts.yaml
* fixup!: use apk for lint scripts
* fixup! fixup!: use apk for lint scripts
* fixup!: remove typecheck step
* fix: pattern for lint ts files
* test: lint should fail
* fixup! fixup!: use apk for lint scripts
* Revert "test: lint should fail"
This reverts commit 158c64db04.
* fixup!: skip cancel workflow on forks
Looks like the cancel action workflow can't run on forks due to secrets.
See https://github.com/andymckay/cancel-action/issues/4
* fixup: remove cancel-workflow
* fixup! fixup! fixup!: use apk for lint scripts
* fixup! fixup! fixup!: use apk for lint scripts
* fixup!: fix yarn key
* fixup!: add fetch-depth 0
* chore: update upstream code
* update patches for vs 1.71.0
the cli fix seems to be fixed in upstream, the telemtry patch requires (again) some fixing and adjustments.
* add safari fix.
* increase ci timeout
Co-authored-by: Joe Previte <jjprevite@gmail.com>
This adds a new job called aur which checkouts code-server-aur, updates
the files with the new version then opens a PR into the repo.
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* docs: update maintaining
* chore(e2e): add maxFailures to playwright
* fix(ci): skip submodule in e2e job
We don't need the submodules for the e2e job. This will speed up the
checkout step.
* feat(ci): add test-e2e-proxy job
This adds a new job to CI to run our tests behind Caddy and simulate
code-server running against a reverse-proxy.
* refactor: make e2e work with reverse proxy
This refactors the e2e test in a couple ways:
- remove setting cookie in localStorage (instead we pass --auth none)
- refactor address() method to account for reverse proxy logic
* Update test/e2e/models/CodeServer.ts
* Update test/playwright.config.ts
* Update test/utils/constants.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/utils/helpers.ts
Co-authored-by: Asher <ash@coder.com>
Co-authored-by: Asher <ash@coder.com>
* Include bin scripts for all platforms
These will get symlinked as part of the postinstall. These scripts
provide everything ours does inside the integrated terminal plus more.
* Improve OS detection
Specifically for Windows although we do not yet support Windows.
Also standardize the duplicate arch functions since they had drifted
from each other bit.
* Remove duplicate asar symlink
Since standalone releases run the postinstall they will get the asar
symlink there. That means the symlink will not exist for the npm
package and we will not need to ignore it.
The symlink portion is split out so it can be re-used for other
symlinks (for example linking bin scripts).
* Add symlinks to bin scripts
* Add test for opening a file from the terminal
* Add global Playwright timeout
Otherwise it will exceed the Actions timeout and get rudely killed
without any output.
* Make sed work on macOS
* Fix Node path in bin scripts
* Disable shellcheck expansion error
* Make scripts executable
* Remove .bak files created by sed
* Include Code build script in cache hash
Otherwise if we change the script it will not rebuild Code.
* Make sure the terminal opens
The selector was timing out even though it matched more than one element
but matching on the focused one appears to work.
In addition add a loop so it can keep trying to open the terminal
if something goes wrong with the focus.
* chore(release): bump version to 4.5.1
* chore: bump helm chart
* chore: update CHANGELOG
* Revert "chore: bump helm chart"
This reverts commit 703b03b665.
* chore: bump helm chart to 3.0.0
* revert: remove bad change to manifes.json icon
* fix(ci): add package.json.version to code cachekey
Before this, creating a release sometimes prevented vscode from
rebuilding and using the cache instead. Now we use the
package.json.version in the cache key to "bust" the cache if the
package.json version is updated (aka a release).
Fixes#5316
* Update .github/workflows/ci.yaml
Co-authored-by: Asher <ash@coder.com>
* fixup: formatting
* Revert "refactor: remove version check e2e test"
This reverts commit b23c398b7d.
Co-authored-by: Asher <ash@coder.com>
* refactor: switch to codecov-uploader GitHub Action
codecov deprecated their Node wrapper for uploading coverage reports.
This removes that and uses their new uploaded along with the v2 GitHub
Action they maintain.
* fix: update broken integration test
* feat: add installExtension integration test
This adds a new helper function called `runCodeServerCommand` along with
a test for `--install-extension`. We can use this approach for writing
integration tests (i.e. testing a real code-server build, CLI commands,
etc).
* refactor: s/ test:standalone with test:integration
This replaces our integration approach to use Jest instead of a single
bash script. By doing this, we will be able to easily maintain and add
to our integration test suite.
* refactor: filter unit tests
Now that our integration tests also use Jest, we need to update our unit
test script to ignore `test/integration`.
* refactor: add SKIP_SUBMODULE_DEPS to postinstall
* refactor: add SKIP_SUBMODULE_DEPS to postinstall
* fixup!: skip submod deps
* refactor: move runCodeServerCommand into sep. file
When Jest runs a test, it loads all the files and imports for that test.
This means you might be "requiring" code that's unrelated to your tests.
This leads to unexpected errors depending on where the code runs.
Moved this file to avoid GLIBC and other errors relaed to argon2 when
running integration tests in CI.
* fizup: formatting
* fizup: increase timeout
* refactor: use fixture in installExtension test
Instead of relying on a network to install an extension, we use a
fixture - vsix file in the repo. This is also faster.
* feat: add integration test for listExtensions
* chore: ignore integration fixtures
* fixup: formatting
* fixup: remove custom-hacks.css
* fixup: formatting
* Update test/integration/installExtension.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/installExtension.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* fixup: contributing integration tests section
* fixup: update ci/readme
* fixup: use RELEASE_PATH in test-integration.sh
* refactor: unzip vsix for listExtensions
* refactor: use exec instead of spawn
* Update docs/CONTRIBUTING.md
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* refactor: use different default binary path
* fixup!: formatting
Co-authored-by: Asher <ash@coder.com>