Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove support for 'online' binary downloads #8505

Merged
merged 21 commits into from
Jan 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2d0db0a
Work in progress
Colengms Dec 7, 2021
a1c5e17
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Dec 7, 2021
2d4ef09
Work in progress
Colengms Dec 8, 2021
091d75e
Remove hash generation for runtime dependencies
Colengms Dec 8, 2021
0de596e
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Dec 8, 2021
a533132
Remove pr-check
Colengms Dec 8, 2021
9c2e0b1
Add temporary logging to investigate a test failure (that doesn't rep…
Colengms Dec 8, 2021
73dbf16
Remove updateChannel setting and insider VSIX install logic
Colengms Dec 9, 2021
bacd302
Temporarily disable integration tests
Colengms Dec 9, 2021
a364f90
Use release.flag or insider.flag file existance to determine release …
Colengms Dec 9, 2021
0c20df9
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Dec 9, 2021
2d5746b
Fix lint issue
Colengms Dec 9, 2021
bc12165
Remove updowngrade tests
Colengms Dec 9, 2021
563e170
Address PR feedback
Colengms Dec 9, 2021
e4b4e9e
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Dec 14, 2021
52511ab
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Dec 14, 2021
14eddbf
Always make binaries executable
Colengms Dec 14, 2021
11a3df2
Cleanup
Colengms Dec 14, 2021
f01c552
Put updateChannel back in as deprecated. Provide UI for updateChanne…
Colengms Dec 15, 2021
41a1d65
Merge branch 'main' of https://github.com/microsoft/vscode-cpptools i…
Colengms Jan 10, 2022
40004aa
Avoid Insiders prompt if running VS Code Insiders
Colengms Jan 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 5 additions & 13 deletions .github/workflows/ci_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,10 @@ jobs:
run: yarn install
working-directory: Extension

- name: Generate hashes for runtime dependency packages
run: yarn run generatePackageHashes
working-directory: Extension

- name: Compile Sources
run: yarn run compile
working-directory: Extension

- name: Validate Extension/package.json
run: yarn run pr-check
working-directory: Extension

- name: Run Linter
run: yarn run lint
working-directory: Extension
Expand All @@ -48,8 +40,8 @@ jobs:
run: yarn run unitTests
working-directory: Extension

- name: Run languageServer integration tests
uses: GabrielBB/[email protected]
with:
run: yarn run integrationTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
18 changes: 5 additions & 13 deletions .github/workflows/ci_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,10 @@ jobs:
run: yarn install --network-timeout 100000
working-directory: Extension

- name: Generate hashes for runtime dependency packages
run: yarn run generatePackageHashes
working-directory: Extension

- name: Compile Sources
run: yarn run compile
working-directory: Extension

- name: Validate Extension/package.json
run: yarn run pr-check
working-directory: Extension

- name: Run Linter
run: yarn run lint
working-directory: Extension
Expand All @@ -48,8 +40,8 @@ jobs:
run: yarn run unitTests
working-directory: Extension

- name: Run languageServer integration tests
uses: GabrielBB/[email protected]
with:
run: yarn run integrationTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
14 changes: 3 additions & 11 deletions .github/workflows/ci_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,10 @@ jobs:
run: yarn install
working-directory: Extension

- name: Generate hashes for runtime dependency packages
run: yarn run generatePackageHashes
working-directory: Extension

- name: Compile Sources
run: yarn run compile
working-directory: Extension

- name: Validate Extension/package.json
run: yarn run pr-check
working-directory: Extension

- name: Run Linter
run: yarn run lint
working-directory: Extension
Expand All @@ -46,6 +38,6 @@ jobs:
run: yarn run unitTests
working-directory: Extension

- name: Run languageServer integration tests
run: yarn run integrationTests
working-directory: Extension
# - name: Run languageServer integration tests
# run: yarn run integrationTests
# working-directory: Extension
114 changes: 0 additions & 114 deletions Extension/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,6 @@ gulp.task('lint', function () {
.pipe(eslint.failAfterError());
});

gulp.task('pr-check', (done) => {
const packageJson = JSON.parse(fs.readFileSync('./package.json').toString());
if (packageJson.activationEvents.length !== 1 && packageJson.activationEvents[0] !== '*') {
console.log('Please make sure to not check in package.json that has been rewritten by the extension activation. If you intended to have changes in package.json, please only check-in your changes. If you did not, please run `git checkout -- package.json`.');
done();
process.exit(1);
}

done();
});


// ****************************
// Command: translations-export
Expand Down Expand Up @@ -301,109 +290,6 @@ gulp.task("translations-import", (done) => {
}));
});

// ****************************
// Command: generate-package-hashes
// Generates a hash for each dependency package
// ****************************

async function DownloadFile(urlString) {
const buffers = [];
return new Promise((resolve, reject) => {
const req = https.request(urlString, (response) => {
if (response.statusCode === 301 || response.statusCode === 302) {
// Redirect - download from new location
let redirectUrl;
if (typeof response.headers.location === "string") {
redirectUrl = response.headers.location;
} else {
if (!response.headers.location) {
console.log(`Invalid download location received`);
return reject();
}
redirectUrl = response.headers.location[0];
}
console.log(`Using redirectUrl: '${redirectUrl}'`);
return resolve(DownloadFile(redirectUrl));
} else if (response.statusCode !== 200) {
if (response.statusCode === undefined || response.statusCode === null) {
console.log("unknown error code.");
return reject();
}
console.log(`failed with error code: '${response.statusCode}'`);
return reject();
}

response.on('data', (data) => {
buffers.push(data);
});

response.on('end', () => {
if (buffers.length > 0) {
return resolve(Buffer.concat(buffers));
} else {
return reject();
}
});

response.on('error', err => {
console.log(`problem with request: '${err.message}'`);
return reject();
});
});

req.on('error', err => {
console.log(`problem with request: '${err.message}'`);
return reject();
});

// Execute the request
req.end();
});

}

async function generatePackageHashes(packageJson) {
const downloadAndGetHash = async (url) => {
console.log(url);
try {
const buf = await DownloadFile(url);
if (buf) {
const hash = crypto.createHash('sha256');
hash.update(buf);
const value = hash.digest('hex').toUpperCase();
return value;
}
return undefined;
} catch (err) {
return undefined;
}
};

for (let dependency of packageJson.runtimeDependencies) {
console.log(`-------- Downloading package: '${dependency.description}' --------`);
const hash = await downloadAndGetHash(dependency.url);
if (hash) {
dependency.integrity = hash;
console.log(`integrity: '${hash}'`);
} else {
console.log(`No hash generated for package '${dependency.description}`);
}
console.log(`\n`);
}

let content = JSON.stringify(packageJson, null, 2);
return content;
}

gulp.task('generate-package-hashes', async (done) => {
const packageJsonPath = './package.json';
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString());
const content = await generatePackageHashes(packageJson);
fs.writeFileSync(packageJsonPath, content);
done();
});


// ****************************
// Command: translations-generate
// The following is used to import an i18n directory structure and generate files used at runtime.
Expand Down
Loading