Skip to content

Commit f88c603

Browse files
authored
feat(build): publish to 5.0 PPAs MONGOSH-832 (#963)
1 parent 7639afb commit f88c603

File tree

2 files changed

+50
-28
lines changed

2 files changed

+50
-28
lines changed

packages/build/src/barque.spec.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,25 @@ describe('Barque', () => {
5656
url: 'https://s3.amazonaws.com/mciuploads/mongosh/5ed7ee5d8683818eb28d9d3b5c65837cde4a08f5/mongodb-mongosh_0.1.0_amd64.deb',
5757
publishedUrls: [
5858
`${Barque.PPA_REPO_BASE_URL}/apt/ubuntu/dists/bionic/mongodb-org/4.4/multiverse/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
59+
`${Barque.PPA_REPO_BASE_URL}/apt/ubuntu/dists/bionic/mongodb-org/5.0/multiverse/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
5960
`${Barque.PPA_REPO_BASE_URL}/apt/ubuntu/dists/focal/mongodb-org/4.4/multiverse/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
61+
`${Barque.PPA_REPO_BASE_URL}/apt/ubuntu/dists/focal/mongodb-org/5.0/multiverse/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
6062
`${Barque.PPA_REPO_BASE_URL}/apt/debian/dists/buster/mongodb-org/4.4/main/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
61-
`${Barque.PPA_REPO_BASE_URL}/apt/debian/dists/stretch/mongodb-org/4.4/main/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`
63+
`${Barque.PPA_REPO_BASE_URL}/apt/debian/dists/buster/mongodb-org/5.0/main/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
64+
`${Barque.PPA_REPO_BASE_URL}/apt/debian/dists/stretch/mongodb-org/4.4/main/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`,
65+
`${Barque.PPA_REPO_BASE_URL}/apt/debian/dists/stretch/mongodb-org/5.0/main/binary-amd64/mongodb-mongosh_0.1.0_amd64.deb`
6266
]
6367
},
6468
{
6569
variant: 'rhel-x64',
6670
url: 'https://s3.amazonaws.com/mciuploads/mongosh/5ed7ee5d8683818eb28d9d3b5c65837cde4a08f5/mongodb-mongosh-0.1.0.el7.x86_64.rpm',
6771
publishedUrls: [
6872
`${Barque.PPA_REPO_BASE_URL}/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`,
73+
`${Barque.PPA_REPO_BASE_URL}/yum/redhat/7/mongodb-org/5.0/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`,
6974
`${Barque.PPA_REPO_BASE_URL}/yum/redhat/8/mongodb-org/4.4/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`,
75+
`${Barque.PPA_REPO_BASE_URL}/yum/redhat/8/mongodb-org/5.0/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`,
7076
`${Barque.PPA_REPO_BASE_URL}/yum/amazon/2/mongodb-org/4.4/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`,
77+
`${Barque.PPA_REPO_BASE_URL}/yum/amazon/2/mongodb-org/5.0/x86_64/RPMS/mongodb-mongosh-0.1.0.el7.x86_64.rpm`
7178
]
7279
}
7380
] as const).forEach(({ variant, url, publishedUrls }) => {

packages/build/src/barque.ts

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ export class Barque {
7777

7878
private config: Config;
7979
private mongodbEdition: string;
80-
private mongodbVersion: string;
80+
private mongodbVersions: {
81+
version: string;
82+
notaryKeyName: string;
83+
notaryToken: string;
84+
}[];
8185

8286
constructor(config: Config) {
8387
if (config.platform !== Platform.Linux) {
@@ -87,9 +91,16 @@ export class Barque {
8791
this.config = config;
8892
// hard code mongodb edition to 'org' for now
8993
this.mongodbEdition = 'org';
90-
// linux mongodb versions to release to. This should perhaps be an array of
91-
// [4.3.0, 4.4.0], like mongo-tools
92-
this.mongodbVersion = '4.4.0';
94+
// linux mongodb versions to release to.
95+
this.mongodbVersions = [{
96+
version: '4.4.0',
97+
notaryKeyName: 'server-4.4',
98+
notaryToken: process.env.SIGNING_AUTH_TOKEN_44 ?? '',
99+
}, {
100+
version: '5.0.0',
101+
notaryKeyName: 'server-5.0',
102+
notaryToken: process.env.SIGNING_AUTH_TOKEN_50 ?? '',
103+
}];
93104
}
94105

95106
/**
@@ -125,7 +136,9 @@ export class Barque {
125136
throw new Error(`Curator is unable to upload ${packageUrl},${ppa},${arch} to barque ${error}`);
126137
}
127138

128-
publishedPackageUrls.push(this.computePublishedPackageUrl(ppa, arch, packageUrl));
139+
for (const { version } of this.mongodbVersions) {
140+
publishedPackageUrls.push(this.computePublishedPackageUrl(ppa, arch, version, packageUrl));
141+
}
129142
}
130143
return publishedPackageUrls;
131144
}
@@ -137,31 +150,33 @@ export class Barque {
137150
ppa: PPARepository,
138151
architecture: string
139152
): Promise<any> {
140-
return await execFile(
141-
`${curatorDirPath}/curator`, [
142-
'--level', 'debug',
143-
'repo', 'submit',
144-
'--service', 'https://barque.corp.mongodb.com',
145-
'--config', repoConfig,
146-
'--distro', ppa,
147-
'--arch', architecture,
148-
'--edition', this.mongodbEdition,
149-
'--version', this.mongodbVersion,
150-
'--packages', packageUrl
151-
], {
152-
// curator looks for these options in env
153-
env: {
154-
NOTARY_KEY_NAME: 'server-4.4',
155-
NOTARY_TOKEN: process.env.SIGNING_AUTH_TOKEN_44,
156-
BARQUE_API_KEY: process.env.BARQUE_API_KEY,
157-
BARQUE_USERNAME: process.env.BARQUE_USERNAME
158-
}
159-
});
153+
for (const { version, notaryKeyName, notaryToken } of this.mongodbVersions) {
154+
return await execFile(
155+
`${curatorDirPath}/curator`, [
156+
'--level', 'debug',
157+
'repo', 'submit',
158+
'--service', 'https://barque.corp.mongodb.com',
159+
'--config', repoConfig,
160+
'--distro', ppa,
161+
'--arch', architecture,
162+
'--edition', this.mongodbEdition,
163+
'--version', version,
164+
'--packages', packageUrl
165+
], {
166+
// curator looks for these options in env
167+
env: {
168+
NOTARY_KEY_NAME: notaryKeyName,
169+
NOTARY_TOKEN: notaryToken,
170+
BARQUE_API_KEY: process.env.BARQUE_API_KEY,
171+
BARQUE_USERNAME: process.env.BARQUE_USERNAME
172+
}
173+
});
174+
}
160175
}
161176

162-
computePublishedPackageUrl(ppa: PPARepository, targetArchitecture: string, packageUrl: string): string {
177+
computePublishedPackageUrl(ppa: PPARepository, targetArchitecture: string, mongodbVersion: string, packageUrl: string): string {
163178
const packageFileName = packageUrl.split('/').slice(-1);
164-
const packageFolderVersion = this.mongodbVersion.split('.').slice(0, 2).join('.');
179+
const packageFolderVersion = mongodbVersion.split('.').slice(0, 2).join('.');
165180
switch (ppa) {
166181
/* eslint-disable no-multi-spaces */
167182
case 'ubuntu1804': return `${Barque.PPA_REPO_BASE_URL}/apt/ubuntu/dists/bionic/mongodb-org/${packageFolderVersion}/multiverse/binary-${targetArchitecture}/${packageFileName}`;

0 commit comments

Comments
 (0)