Skip to content

Commit fc033a9

Browse files
committed
fix!: only support a single repository/key for each apt package
BREAKING the option for repositories/keys are now singular instead of an array
1 parent 2032957 commit fc033a9

File tree

10 files changed

+123
-129
lines changed

10 files changed

+123
-129
lines changed

dist/actions/setup-cpp.js

+28-28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/actions/setup-cpp.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/legacy/setup-cpp.js

+28-28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/legacy/setup-cpp.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/modern/setup-cpp.js

+28-28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/modern/setup-cpp.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/setup-apt/README.md

+4-6
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,8 @@ await installAptPack([
109109
{
110110
name: "gcc",
111111
version,
112-
repositories: ["ppa:ubuntu-toolchain-r/test"],
113-
addAptKey: [
114-
{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" },
115-
],
112+
repository: "ppa:ubuntu-toolchain-r/test",
113+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
116114
},
117115
])
118116
```
@@ -154,7 +152,7 @@ Add an apt key
154152

155153
```ts
156154
await addAptKey({
157-
keys: ["3B4FE6ACC0B21F32", "40976EAF437D05B5"],
155+
key: ["3B4FE6ACC0B21F32", "40976EAF437D05B5"],
158156
fileName: "bazel-archive-keyring.gpg",
159157
})
160158
```
@@ -178,7 +176,7 @@ Add an apt key via a keyserver
178176

179177
**Parameters:**
180178

181-
- { keys, keyServer = defaultKeyServer, fileName, keyStorePath = defaultKeyServer } (`KeyServerOptions`)
179+
- { key, keyServer = defaultKeyServer, fileName, keyStorePath = defaultKeyServer } (`KeyServerOptions`)
182180

183181
**returns:** Promise<string>
184182

packages/setup-apt/src/apt-key.ts

+15-19
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export type AddAptKeyOptions = KeyServerOptions | KeyUrl
1515
*
1616
* @example
1717
* ```ts
18-
* await addAptKey({ keys: ["3B4FE6ACC0B21F32", "40976EAF437D05B5"], fileName: "bazel-archive-keyring.gpg"})
18+
* await addAptKey({ key: ["3B4FE6ACC0B21F32", "40976EAF437D05B5"], fileName: "bazel-archive-keyring.gpg"})
1919
* ```
2020
*
2121
* @example
@@ -46,14 +46,14 @@ export const defaultKeyStorePath = "/etc/apt/trusted.gpg.d"
4646

4747
export type KeyServerOptions = {
4848
/**
49-
* The keys to add
49+
* The key to add
5050
*
5151
* @example
5252
* ```ts
53-
* ["3B4FE6ACC0B21F32", "40976EAF437D05B5"]
53+
* "3B4FE6ACC0B21F32"
5454
* ```
5555
*/
56-
keys: string[]
56+
key: string
5757
/**
5858
* The keyserver to use (Defaults to `keyserver.ubuntu.com`)
5959
*/
@@ -67,28 +67,24 @@ export const defaultKeyServer = "keyserver.ubuntu.com"
6767
* @returns The file name of the key that was added or `undefined` if it failed
6868
*/
6969
export async function addAptKeyViaServer(
70-
{ keys, keyServer = defaultKeyServer, fileName, keyStorePath = defaultKeyServer }: KeyServerOptions,
70+
{ key, keyServer = defaultKeyServer, fileName, keyStorePath = defaultKeyServer }: KeyServerOptions,
7171
) {
7272
try {
7373
assertGpgFileName(fileName)
7474
const filePath = join(keyStorePath, fileName)
7575
if (!(await pathExists(filePath))) {
7676
initGpg()
7777

78-
await Promise.all(
79-
keys.map(async (key) => {
80-
await execRoot("gpg", [
81-
"--no-default-keyring",
82-
"--keyring",
83-
`gnupg-ring:${filePath}`,
84-
"--keyserver",
85-
keyServer,
86-
"--recv-keys",
87-
key,
88-
])
89-
await execRoot("chmod", ["644", filePath])
90-
}),
91-
)
78+
await execRoot("gpg", [
79+
"--no-default-keyring",
80+
"--keyring",
81+
`gnupg-ring:${filePath}`,
82+
"--keyserver",
83+
keyServer,
84+
"--recv-keys",
85+
key,
86+
])
87+
await execRoot("chmod", ["644", filePath])
9288
}
9389
return filePath
9490
} catch (err) {

packages/setup-apt/src/install.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ export type AptPackage = {
3838
name: string
3939
/** The version of the package (optional) */
4040
version?: string
41-
/** The repositories to add before installing the package (optional) */
42-
repositories?: string[]
43-
/** The keys to add before installing the package (optional) */
44-
addAptKey?: AddAptKeyOptions[]
41+
/** The repository to add before installing the package (optional) */
42+
repository?: string
43+
/** The key to add before installing the package (optional) */
44+
key?: AddAptKeyOptions
4545
}
4646

4747
const retryErrors = [
@@ -69,8 +69,8 @@ const retryErrors = [
6969
{
7070
name: "gcc",
7171
version,
72-
repositories: ["ppa:ubuntu-toolchain-r/test"],
73-
addAptKey: [{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" }],
72+
repository: "ppa:ubuntu-toolchain-r/test",
73+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
7474
},
7575
])
7676
* ```
@@ -133,8 +133,8 @@ export async function installAptPack(packages: AptPackage[], update = false): Pr
133133

134134
async function addAptKeys(packages: AptPackage[]) {
135135
await Promise.all(packages.map(async (pack) => {
136-
if (pack.addAptKey !== undefined) {
137-
await Promise.all(pack.addAptKey.map(addAptKey))
136+
if (pack.key !== undefined) {
137+
await addAptKey(pack.key)
138138
}
139139
}))
140140
}
@@ -211,7 +211,7 @@ async function qualifiedNeededAptPackage(apt: string, pack: AptPackage) {
211211
}
212212

213213
async function addRepositories(apt: string, packages: AptPackage[]) {
214-
const allRepositories = [...new Set(packages.flatMap((pack) => pack.repositories ?? []))]
214+
const allRepositories = [...new Set(packages.flatMap((pack) => pack.repository ?? []))]
215215
if (allRepositories.length !== 0) {
216216
if (!didInit) {
217217
await initApt(apt)

src/gcc/gcc.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,14 @@ export async function setupGcc(version: string, setupDir: string, arch: string,
114114
{
115115
name: "gcc",
116116
version,
117-
repositories: ["ppa:ubuntu-toolchain-r/test"],
118-
addAptKey: [{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" }],
117+
repository: "ppa:ubuntu-toolchain-r/test",
118+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
119119
},
120120
{
121121
name: "g++",
122122
version,
123-
repositories: ["ppa:ubuntu-toolchain-r/test"],
124-
addAptKey: [{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" }],
123+
repository: "ppa:ubuntu-toolchain-r/test",
124+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
125125
},
126126
])
127127
}
@@ -133,8 +133,8 @@ export async function setupGcc(version: string, setupDir: string, arch: string,
133133
await installAptPack([{
134134
name: "gcc-multilib",
135135
version,
136-
repositories: ["ppa:ubuntu-toolchain-r/test"],
137-
addAptKey: [{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" }],
136+
repository: "ppa:ubuntu-toolchain-r/test",
137+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
138138
}])
139139
}
140140
}
@@ -180,8 +180,8 @@ export async function setupMingw(version: string, setupDir: string, arch: string
180180
{
181181
name: "mingw-w64",
182182
version,
183-
repositories: ["ppa:ubuntu-toolchain-r/test"],
184-
addAptKey: [{ keys: ["1E9377A2BA9EF27F"], fileName: "ubuntu-toolchain-r-test.gpg" }],
183+
repository: "ppa:ubuntu-toolchain-r/test",
184+
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
185185
},
186186
])
187187
}

0 commit comments

Comments
 (0)