* Allow setting the VS Code build target
For the NPM package (and tests, at least for now), we will still use
linux-x64, but this is going to allow using the platform build targets
for our standalone releases so we can avoid having to copy all the
packaging steps (like cleaning up modules).
This does mean that the NPM package when installed will be missing those
cleanup steps. Possibly we can try to break out the packaging step into
a something that can be ran standalone (which will also require
installing dev dependencies like gulp) but not sure how much work this
would be.
* Preserve dependencies for e2e tests
To avoid having to install them again.
Also moved an env block to the root of the job.
* Refactor releases to use VS Code packaging
Instead of building the linux-x64 package, stripping the modules, then
installing them again, we build the correct target and use the modules
as they are.
This means we do not have to copy all the post-processing steps like the
ones that delete unnecessary modules.
For the NPM package we still publish the linux-x64 package (without
modules of course). This means npm installations do not get that same
post-processing.
Another advantage of this is that we can run the release immediately
without having to wait for the build step, or on a commit that no longer
has a build artifact, since they all build individually now. We could
try sharing the core-ci build step, but leaving that alone for now.
I also converted the macOS jobs into a matrix.
Deleted the CI readme because it was out of date and seemed to just
repeat what should be described in the scripts anyway.
Removed a section about Homebrew since we do not maintain that anymore.
It looks like there is no need to symlink node_modules.asar anymore.
We are getting an issue importing __future__ from annotations in one
case and "invalid syntax" in another with `if CC :=`.
There does not seem to be a reason to maintain a separate step for the
amd64 build since the glibc version is the same.
* Update Code to 1.94.2
* Convert from yarn to npm
This is to match VS Code. We were already partially using npm for the
releases so this is some nice alignment.
* Update caniuse-lite
This was complaining on every unit test.
* Update eslint
I was having a bunch of dependency conflicts and eslint seemed to be the
culprit so I just removed it and set it up again, since it seems things
have changed quite a bit.
* Update test dependencies
I was getting oom when running the unit tests...updating seems to work.
* Remove package.json `scripts` property in release
The new pre-install script was being included, which is dev-only.
This was always the intent; did not realize jq's merge was recursive.
* Remove jest and devDependencies in release as well
* Update test extension dependencies
This appears to be conflicting with the root dependencies.
* Fix playwright exec
npm does not let you run binaries like yarn does, as far as I know.
* Fix import of server-main.js
* Fix several tests by waiting for selectors
This should make it much easier to update. Also use 18.15.0
specifically since that is what VS Code ships with.
Additionally, it fixes the post-install script being skipped due to
a Yarn v1 bug that happens when Yarn installs node-gyp, which
it does because 18.18 onward stopped bundling node-gyp.
* Fix building from source on arm
Not building from source causes argon2 to pull the wrong arch, so we
have to build from source.
But building from source is causing the new Kerberos module to fail on
arm64 and keytar to fail on both.
The latter has been very difficult to debug because the GitHub image
provides a different result to containers based on Ubuntu 20.04.
Because of this, use a container instead.
Use debian:buster as the container because it is easier to set up the
architecture sources (no need to modify the sources) and because it
seems to come with glibc 2.28 rather than 2.31.
Also use the exact version of Node (18.15.0) for reproducibility.
* Set owner and group during tar to zero
Otherwise you get IDs that can cause (benign) errors while extracting,
which might be confusing. At the very least, I did not see these errors
from previous tars (although they seem to use 1001).
There is no guarantee what IDs might exist so 0 seems the most
reasonable.
The comment said the issue with argon2 was related to CentOS 7 but the
cross-compile steps never used CentOS 7 so maybe the real issue is with
the architecture.
* Avoid packaging yarn.lock
Since the shrinkwrap is what we want everything to use.
* Build with npm
It seems we stuck with yarn because npm was giving us errors but I will try
sorting it out now so we can build with npm as originally intended.
* Remove build from source
Not using CentOS 7 anymore so based on the comment we no longer need
this. Keytar seems to install fine now.
* Update missed Node version
These numbers are all over the place.
* npm_config_arch must be lowercase
* Patch out Kerberos
I am not sure exactly how it is used but I think it is not a path code-server
worries about, at least not right now. Just going to patch it out rather than
figure out how to build it on armv7l but we can revisit later.
At least, for the standalone and for anyone running on default Node 18.
If support for 2.17 is needed then one would need to build Node 18 with 2.17 and then build code-server with that version (specifically, the native npm modules).
* Update VS Code to 1.82.2
* Add new libkrb5 dependency
* Update patches
The only changes were to context except:
- The URL callback provider uses a new _callbackRoute argument and moved
locations.
- The telemetry provider gets passed the request service as the first
argument now.
- CSP hash changed, as usual.
* Update Node to v18
* Revert back to es2020
es2022 is breaking Safari.
* refactor: remove keytar dep in cross-compile
* refactor: try other keytar package
* refactor: remove keytar step in cross-compile
* fix: manually remove keytar
* try this first
* I think this is it
* Revert "I think this is it"
This reverts commit 5c566b0c01.
* okay this is it
* fixup
* try legacy peer
* remove keytar before standalone
* wrong path
* maybe
* revert: change *npm* back to npm*
* revert: don't uninstall keytar
* fix: use npm run standalone-release
* fixup formatting
* Revert "refactor: remove yarn.lock steps (#5850)"
This reverts commit 907747d394.
* fixup: remove the --exclude
* refactor: remove yarn.lock check
* try ddd in postinstall
* refactor: cache before release:standalone
* refactor: add os to cache key in release
* chore: formatting
* Update ci/build/npm-postinstall.sh
* fixup: formatting
* refactor: remove keytar dep in cross-compile
* refactor: try other keytar package
* refactor: remove keytar step in cross-compile
* fix: manually remove keytar
* try this first
* I think this is it
* Revert "I think this is it"
This reverts commit 5c566b0c01.
* okay this is it
* fixup
* try legacy peer
* remove keytar before standalone
* wrong path
* maybe
* revert: change *npm* back to npm*
* revert: don't uninstall keytar
* fix: use npm run standalone-release
* fixup formatting
* Revert "refactor: remove yarn.lock steps (#5850)"
This reverts commit 907747d394.
* fixup: remove the --exclude
* refactor: remove yarn.lock check
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>