1+ #! /bin/bash
2+ # #===----------------------------------------------------------------------===##
3+ # #
4+ # # This source file is part of the VS Code Swift open source project
5+ # #
6+ # # Copyright (c) 2024 the VS Code Swift project authors
7+ # # Licensed under Apache License v2.0
8+ # #
9+ # # See LICENSE.txt for license information
10+ # # See CONTRIBUTORS.txt for the list of VS Code Swift project authors
11+ # #
12+ # # SPDX-License-Identifier: Apache-2.0
13+ # #
14+ # #===----------------------------------------------------------------------===##
15+
16+ set -e
17+
18+ NODE_VERSION=" $( cat .nvmrc) "
19+ NODE_NAME=" node-v$NODE_VERSION -darwin-arm64"
20+ NODE_ARCHIVE=" $NODE_NAME .tar.gz"
21+ ARTIFACTS=" $PWD /.vscode-test"
22+ VSCODE_SETTINGS=" $ARTIFACTS /user-data/User/settings.json"
23+ LSP_SETTINGS=" $HOME /.sourcekit-lsp/config.json"
24+
25+ export TMPDIR=" $ARTIFACTS /tmp"
26+ mkdir -p $TMPDIR
27+
28+ function cleanup {
29+ rm SHASUMS256.txt
30+ rm $NODE_ARCHIVE
31+ rm -rf " $ARTIFACTS "
32+ rm -rf " $LSP_SETTINGS "
33+ }
34+ trap " cleanup" EXIT
35+
36+ curl -O " https://nodejs.org/dist/v$NODE_VERSION /$NODE_ARCHIVE "
37+ curl -O " https://nodejs.org/dist/v$NODE_VERSION /SHASUMS256.txt"
38+
39+ NODE_CHECKSUM=" $( grep $NODE_ARCHIVE SHASUMS256.txt) "
40+
41+ grep " $NODE_ARCHIVE " SHASUMS256.txt | sha256sum -c -
42+
43+ tar -xzf $NODE_ARCHIVE -C $ARTIFACTS
44+
45+ export NPM_CONFIG_CACHE=" $ARTIFACTS /$NODE_NAME /cache"
46+ export NPM_CONFIG_PREFIX=" $ARTIFACTS /$NODE_NAME "
47+ export NPM_CONFIG_USERCONFIG=" $ARTIFACTS /$NODE_NAME /usernpmrc"
48+ export NPM_CONFIG_GLOBALCONFIG=" $ARTIFACTS /$NODE_NAME /globalnpmrc"
49+
50+ PATH=" $ARTIFACTS /$NODE_NAME /bin:$PATH "
51+
52+ mkdir -p $( dirname " $VSCODE_SETTINGS " )
53+ cat << EOT > $VSCODE_SETTINGS
54+ {
55+ "swift.buildArguments": [
56+ "--disable-sandbox",
57+ "-Xswiftc",
58+ "-disable-sandbox"
59+ ]
60+ }
61+ EOT
62+
63+ mkdir -p $( dirname " $LSP_SETTINGS " )
64+ cat << EOT > $LSP_SETTINGS
65+ {
66+ "swiftPM": {
67+ "disableSandbox": true,
68+ "swiftCompilerFlags": [
69+ "-disable-sandbox"
70+ ]
71+ }
72+ }
73+ EOT
74+
75+ npm ci -ignore-script node-pty
76+ npm run lint
77+ npm run format
78+ npm run package
79+ FAST_TEST_RUN=1 npm run coverage -- --coverage-output " $PWD /coverage"
0 commit comments