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

CI: Skip uploading artifacts and crash reports to paid services if API key/secret env vars aren't set #66

6 changes: 6 additions & 0 deletions script/vsts/nightly-release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
variables:
ATOM_RELEASES_S3_KEY: $[ variables['ATOM_RELEASES_S3_KEY'] ]
ATOM_RELEASES_S3_SECRET: $[ variables['ATOM_RELEASES_S3_SECRET'] ]
ATOM_RELEASES_S3_BUCKET: $[ variables['ATOM_RELEASES_S3_BUCKET'] ]
PACKAGE_CLOUD_API_KEY: $[ variables['PACKAGE_CLOUD_API_KEY'] ]

jobs:
- job: GetReleaseVersion
pool:
Expand Down
6 changes: 6 additions & 0 deletions script/vsts/release-branch-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ trigger:
- electron-*
pr: none # no PR triggers

variables:
ATOM_RELEASES_S3_KEY: $[ variables['ATOM_RELEASES_S3_KEY'] ]
ATOM_RELEASES_S3_SECRET: $[ variables['ATOM_RELEASES_S3_SECRET'] ]
ATOM_RELEASES_S3_BUCKET: $[ variables['ATOM_RELEASES_S3_BUCKET'] ]
PACKAGE_CLOUD_API_KEY: $[ variables['PACKAGE_CLOUD_API_KEY'] ]

jobs:
- job: GetReleaseVersion
pool:
Expand Down
52 changes: 34 additions & 18 deletions script/vsts/upload-artifacts.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,27 +65,43 @@ async function uploadArtifacts() {
return;
}

console.log(
`Uploading ${
assets.length
} release assets for ${releaseVersion} to S3 under '${bucketPath}'`
);

await uploadToS3(
process.env.ATOM_RELEASES_S3_KEY,
process.env.ATOM_RELEASES_S3_SECRET,
process.env.ATOM_RELEASES_S3_BUCKET,
bucketPath,
assets
);
if (
process.env.ATOM_RELEASES_S3_KEY &&
process.env.ATOM_RELEASES_S3_SECRET &&
process.env.ATOM_RELEASES_S3_BUCKET
) {
console.log(
`Uploading ${
assets.length
} release assets for ${releaseVersion} to S3 under '${bucketPath}'`
);

if (argv.linuxRepoName) {
await uploadLinuxPackages(
argv.linuxRepoName,
process.env.PACKAGE_CLOUD_API_KEY,
releaseVersion,
await uploadToS3(
process.env.ATOM_RELEASES_S3_KEY,
process.env.ATOM_RELEASES_S3_SECRET,
process.env.ATOM_RELEASES_S3_BUCKET,
bucketPath,
assets
);
} else {
console.log(
'\nEnvironment variables "ATOM_RELEASES_S3_BUCKET", "ATOM_RELEASES_S3_KEY" and/or "ATOM_RELEASES_S3_SECRET" are not set, skipping S3 upload.'
);
}

if (argv.linuxRepoName) {
if (process.env.PACKAGE_CLOUD_API_KEY) {
await uploadLinuxPackages(
argv.linuxRepoName,
process.env.PACKAGE_CLOUD_API_KEY,
releaseVersion,
assets
);
} else {
console.log(
'\nEnvironment variable "PACKAGE_CLOUD_API_KEY" is not set, skipping PackageCloud upload.'
);
}
} else {
console.log(
'\nNo Linux package repo name specified, skipping Linux package upload.'
Expand Down
22 changes: 16 additions & 6 deletions script/vsts/upload-crash-reports.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,19 @@ async function uploadCrashReports() {
}
}

// Wrap the call the async function and catch errors from its promise because
// Node.js doesn't yet allow use of await at the script scope
uploadCrashReports().catch(err => {
console.error('An error occurred while uploading crash reports:\n\n', err);
process.exit(1);
});
if (
process.env.ATOM_RELEASES_S3_KEY &&
process.env.ATOM_RELEASES_S3_SECRET &&
process.env.ATOM_RELEASES_S3_BUCKET
) {
// Wrap the call the async function and catch errors from its promise because
// Node.js doesn't yet allow use of await at the script scope
uploadCrashReports().catch(err => {
console.error('An error occurred while uploading crash reports:\n\n', err);
process.exit(1);
});
} else {
console.log(
'\n\nEnvironment variables "ATOM_RELEASES_S3_BUCKET", "ATOM_RELEASES_S3_KEY" and/or "ATOM_RELEASES_S3_SECRET" are not set, skipping S3 upload.'
);
}