infra: automate continuous deployment (#157)

This commit is contained in:
Brandon Keiji 2025-04-24 21:36:58 +00:00 committed by GitHub
parent 4dc98b3c7e
commit 0510d06ecf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 33 additions and 14 deletions

24
.gcp/cd.yaml Normal file
View File

@ -0,0 +1,24 @@
steps:
# Install dependencies
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
# Run prerelease versioning script across workspaces with dynamic version
- name: 'gcr.io/cloud-builders/npm'
entrypoint: 'bash'
args:
- '-c'
- |
npm run prerelease:version --workspaces -- --suffix="$(date +%Y%m%d)-$_SHORT_SHA.$_BUILD_ID"
# Run prerelease dependency script across workspaces
- name: 'gcr.io/cloud-builders/npm'
args: ['run', 'prerelease:deps', '--workspaces']
# Authenticate with our registry
- name: gcr.io/cloud-builders/npm
args: ['run', 'artifactregistry-login']
# Publish packages from workspaces with 'dogfood' tag
- name: 'gcr.io/cloud-builders/npm'
args: ['publish', '--tag=head', '--workspaces']

View File

@ -18,34 +18,29 @@ function getBaseVersion() {
// Read root package.json
const rootPackageJsonPath = path.join(rootDir, 'package.json');
const rootPackage = JSON.parse(fs.readFileSync(rootPackageJsonPath, 'utf8'));
let baseVersion = rootPackage.version;
return rootPackage.version;
}
function getDefaultSuffix() {
// Get latest commit hash
const commitHash = execSync('git rev-parse --short HEAD', {
encoding: 'utf8',
}).trim();
// Append dev suffix with commit hash
const devSuffix = `-dev-${commitHash}.0`;
return `${baseVersion}${devSuffix}`;
return `dev-${commitHash}.0`;
}
const argv = yargs(hideBin(process.argv))
.option('pkg-version', {
.option('suffix', {
type: 'string',
description: 'Set the package version',
description: 'Set the package version suffix',
})
.parse();
const newVersion = argv['pkg-version'] ?? getBaseVersion();
if (argv['pkg-version']) {
console.log(`Using provided package version (--pkg-version): ${newVersion}`);
} else {
console.log(
`Using base version with dev suffix and commit hash: ${newVersion}`,
);
}
const baseVersion = getBaseVersion();
const suffix = argv['suffix'] ?? getDefaultSuffix();
const newVersion = `${baseVersion}${suffix.length ? '-' : ''}${suffix}`;
console.log(`Setting package version to: ${newVersion}`);
const packageJsonPath = path.join(packageDir, 'package.json');