Compare commits
4 Commits
Author | SHA1 | Date |
---|---|---|
Asher | a3a6d4d701 | |
Asher | d193d19756 | |
Asher | 164e8ac0a1 | |
Asher | 1f36c34267 |
|
@ -49,6 +49,11 @@ jobs:
|
|||
uses: ./ci/images/debian10
|
||||
with:
|
||||
args: ./ci/steps/release.sh
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
- name: Create npm package artifact
|
||||
run: |
|
||||
mkdir -p release-npm-package
|
||||
tar -czf release-npm-package/package.tar.gz release
|
||||
- name: Upload npm package artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
@ -60,11 +65,14 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Download npm package
|
||||
- name: Download npm package artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: npm-package
|
||||
path: ./release-npm-package
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
- name: Extract npm package artifact
|
||||
run: tar -xzf release-npm-package/package.tar.gz
|
||||
- name: Run ./ci/steps/release-packages.sh
|
||||
uses: ./ci/images/centos7
|
||||
with:
|
||||
|
@ -80,11 +88,14 @@ jobs:
|
|||
runs-on: ubuntu-arm64-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Download npm package
|
||||
- name: Download npm package artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: npm-package
|
||||
path: ./release-npm-package
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
- name: Extract npm package artifact
|
||||
run: tar -xzf release-npm-package/package.tar.gz
|
||||
- name: Run ./ci/steps/release-packages.sh
|
||||
uses: ./ci/images/centos7
|
||||
with:
|
||||
|
@ -100,11 +111,14 @@ jobs:
|
|||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Download npm package
|
||||
- name: Download npm package artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: npm-package
|
||||
path: ./release-npm-package
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
- name: Extract npm package artifact
|
||||
run: tar -xzf release-npm-package/package.tar.gz
|
||||
- run: ./ci/steps/release-packages.sh
|
||||
env:
|
||||
# Otherwise we get rate limited when fetching the ripgrep binary.
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# Ignored by default but not sure it applies to sub-directories.
|
||||
# TODO: test
|
||||
# node_modules
|
||||
|
||||
# Doesn't need to be included as it will be downloaded during postinstall.
|
||||
/lib/coder-cloud-agent
|
||||
|
||||
# Node and the code-server entry script are not used for the npm version since
|
||||
# the user already has Node.
|
||||
/bin
|
||||
/lib/node
|
||||
/code-server
|
||||
/node
|
|
@ -6,10 +6,6 @@ set -euo pipefail
|
|||
# MINIFY controls whether minified vscode is bundled.
|
||||
MINIFY="${MINIFY-true}"
|
||||
|
||||
# KEEP_MODULES controls whether the script cleans all node_modules requiring a yarn install
|
||||
# to run first.
|
||||
KEEP_MODULES="${KEEP_MODULES-0}"
|
||||
|
||||
main() {
|
||||
cd "$(dirname "${0}")/../.."
|
||||
source ./ci/lib.sh
|
||||
|
@ -61,11 +57,9 @@ EOF
|
|||
rsync yarn.lock "$RELEASE_PATH"
|
||||
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"
|
||||
|
||||
if [ "$KEEP_MODULES" = 1 ]; then
|
||||
rsync node_modules/ "$RELEASE_PATH/node_modules"
|
||||
mkdir -p "$RELEASE_PATH/lib"
|
||||
rsync ./lib/coder-cloud-agent "$RELEASE_PATH/lib"
|
||||
fi
|
||||
}
|
||||
|
||||
bundle_vscode() {
|
||||
|
@ -74,11 +68,7 @@ bundle_vscode() {
|
|||
rsync "$VSCODE_SRC_PATH/out-vscode${MINIFY:+-min}/" "$VSCODE_OUT_PATH/out"
|
||||
|
||||
rsync "$VSCODE_SRC_PATH/.build/extensions/" "$VSCODE_OUT_PATH/extensions"
|
||||
if [ "$KEEP_MODULES" = 0 ]; then
|
||||
rm -Rf "$VSCODE_OUT_PATH/extensions/node_modules"
|
||||
else
|
||||
rsync "$VSCODE_SRC_PATH/node_modules/" "$VSCODE_OUT_PATH/node_modules"
|
||||
fi
|
||||
rsync "$VSCODE_SRC_PATH/extensions/package.json" "$VSCODE_OUT_PATH/extensions"
|
||||
rsync "$VSCODE_SRC_PATH/extensions/yarn.lock" "$VSCODE_OUT_PATH/extensions"
|
||||
rsync "$VSCODE_SRC_PATH/extensions/postinstall.js" "$VSCODE_OUT_PATH/extensions"
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
main() {
|
||||
cd "$(dirname "$0")/../../.."
|
||||
source ./ci/lib.sh
|
||||
mkdir -p .home
|
||||
|
||||
docker run \
|
||||
-it \
|
||||
--rm \
|
||||
-v "$PWD:/src" \
|
||||
-e HOME="/src/.home" \
|
||||
-e USER="coder" \
|
||||
-e GITHUB_TOKEN \
|
||||
-e KEEP_MODULES \
|
||||
-e MINIFY \
|
||||
-w /src \
|
||||
-p 127.0.0.1:8080:8080 \
|
||||
-u "$(id -u):$(id -g)" \
|
||||
-e CI \
|
||||
"$(docker_build ./ci/images/"${IMAGE-debian10}")" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
docker_build() {
|
||||
docker build "$@" >&2
|
||||
docker build -q "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
main() {
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
cd ./lib/vscode
|
||||
git add -A
|
||||
git reset --hard
|
||||
}
|
||||
|
||||
main "$@"
|
|
@ -15,9 +15,6 @@ main() {
|
|||
fi
|
||||
PATH="$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin:$PATH"
|
||||
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
tar -xzf release-npm-package/package.tar.gz
|
||||
|
||||
yarn release:standalone
|
||||
yarn test:standalone-release
|
||||
yarn package
|
||||
|
|
|
@ -8,10 +8,6 @@ main() {
|
|||
yarn build
|
||||
yarn build:vscode
|
||||
yarn release
|
||||
|
||||
# https://github.com/actions/upload-artifact/issues/38
|
||||
mkdir -p release-npm-package
|
||||
tar -czf release-npm-package/package.tar.gz release
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
|
|
@ -50,8 +50,8 @@ yarn watch
|
|||
To develop inside an isolated Docker container:
|
||||
|
||||
```shell
|
||||
./ci/dev/image/run.sh yarn
|
||||
./ci/dev/image/run.sh yarn watch
|
||||
pure yarn
|
||||
pure yarn watch
|
||||
```
|
||||
|
||||
`yarn watch` will live reload changes to the source.
|
||||
|
@ -63,7 +63,6 @@ If you need to update VS Code, you can update the subtree with one line. Here's
|
|||
```shell
|
||||
# Add vscode as a new remote if you haven't already and fetch
|
||||
git remote add -f vscode https://github.com/microsoft/vscode.git
|
||||
|
||||
git subtree pull --prefix lib/vscode vscode release/1.52 --squash --message "Update VS Code to 1.52"
|
||||
```
|
||||
|
||||
|
@ -72,50 +71,42 @@ git subtree pull --prefix lib/vscode vscode release/1.52 --squash --message "Upd
|
|||
You can build using:
|
||||
|
||||
```shell
|
||||
./ci/dev/image/run.sh ./ci/steps/release.sh
|
||||
pure release
|
||||
```
|
||||
|
||||
Run your build with:
|
||||
This builds the release into the `release` directory. You can run this built
|
||||
release directly with:
|
||||
|
||||
```shell
|
||||
cd release
|
||||
yarn --production
|
||||
# Runs the built JavaScript with Node.
|
||||
node .
|
||||
```
|
||||
|
||||
Build the release packages (make sure that you run `./ci/steps/release.sh` first):
|
||||
|
||||
```shell
|
||||
IMAGE=centos7 ./ci/dev/image/run.sh ./ci/steps/release-packages.sh
|
||||
# The standalone release is in ./release-standalone
|
||||
# .deb, .rpm and the standalone archive are in ./release-packages
|
||||
```
|
||||
|
||||
The `release.sh` script is equal to running:
|
||||
|
||||
```shell
|
||||
yarn
|
||||
yarn build
|
||||
yarn build:vscode
|
||||
yarn release
|
||||
```
|
||||
|
||||
And `release-packages.sh` is equal to:
|
||||
|
||||
```shell
|
||||
yarn release:standalone
|
||||
yarn test:standalone-release
|
||||
yarn package
|
||||
```
|
||||
|
||||
For a faster release build, you can run instead:
|
||||
|
||||
```shell
|
||||
KEEP_MODULES=1 ./ci/steps/release.sh
|
||||
node ./release
|
||||
```
|
||||
|
||||
Build the release packages (make sure that you run `pure release` first):
|
||||
|
||||
```shell
|
||||
pure package
|
||||
```
|
||||
|
||||
The standalone release will be in `./release-standalone` The `.deb`, `.rpm` and
|
||||
the standalone archive will be in `./release-packages`.
|
||||
|
||||
Running `pure release` is equal to running:
|
||||
|
||||
```shell
|
||||
pure yarn --frozen-lockfile
|
||||
pure yarn build
|
||||
pure yarn build:vscode
|
||||
pure yarn release
|
||||
```
|
||||
|
||||
And `pure package` is equal to:
|
||||
|
||||
```shell
|
||||
pure yarn release:standalone
|
||||
pure yarn test:standalone-release
|
||||
pure yarn package
|
||||
```
|
||||
|
||||
## Structure
|
||||
|
||||
The `code-server` script serves an HTTP API for login and starting a remote VS Code process.
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
"repository": "https://github.com/cdr/code-server",
|
||||
"scripts": {
|
||||
"clean": "./ci/build/clean.sh",
|
||||
"vscode:reset": "./ci/dev/reset-vscode.sh",
|
||||
"build": "./ci/build/build-code-server.sh",
|
||||
"build:vscode": "./ci/build/build-vscode.sh",
|
||||
"release": "./ci/build/build-release.sh",
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
commands:
|
||||
yarn:
|
||||
image: ./ci/images/centos7/Dockerfile
|
||||
usage: Install dependencies
|
||||
run: yarn
|
||||
env:
|
||||
- YARN_CACHE=/yarn-cache # YARN_CACHE: /yarn-cache
|
||||
ports:
|
||||
- 8080
|
||||
caches:
|
||||
- key: yarn-cache
|
||||
path: /yarn-cache
|
||||
release:
|
||||
image: ./ci/images/centos7/Dockerfile
|
||||
usage: Build a release
|
||||
run: ./ci/steps/release.sh
|
||||
package:
|
||||
image: ./ci/images/centos7/Dockerfile
|
||||
usage: Package a release
|
||||
run: ./ci/steps/release-packages.sh
|
Loading…
Reference in New Issue