Skip to content

Commit f0b9bbc

Browse files
Download key directly
Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
1 parent 52f425a commit f0b9bbc

File tree

2 files changed

+26
-139
lines changed

2 files changed

+26
-139
lines changed

dist/index.js

Lines changed: 13 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -7059,68 +7059,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
70597059
step((generator = generator.apply(thisArg, _arguments || [])).next());
70607060
});
70617061
};
7062-
var __importDefault = (this && this.__importDefault) || function (mod) {
7063-
return (mod && mod.__esModule) ? mod : { "default": mod };
7064-
};
70657062
Object.defineProperty(exports, "__esModule", ({ value: true }));
70667063
exports.runLinux = runLinux;
70677064
const core = __importStar(__nccwpck_require__(186));
70687065
const io = __importStar(__nccwpck_require__(436));
70697066
const apt = __importStar(__nccwpck_require__(671));
70707067
const pip = __importStar(__nccwpck_require__(744));
70717068
const utils = __importStar(__nccwpck_require__(314));
7072-
const path = __importStar(__nccwpck_require__(17));
7073-
const fs_1 = __importDefault(__nccwpck_require__(147));
7074-
// Open Robotics APT Repository public GPG key, as retrieved at:
7075-
// https://github.com/ros/rosdistro/blob/master/ros.asc
7076-
//
7077-
// Unfortunately, usin apt-key adv is slow, and is failing sometimes, causing
7078-
// spurious pipelines failures. The action is hard-coding the key here to
7079-
// mitigate this issue.
7080-
const openRoboticsAptPublicGpgKey = `
7081-
-----BEGIN PGP PUBLIC KEY BLOCK-----
7082-
Version: GnuPG v1
7083-
7084-
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
7121-
=9IZg
7122-
-----END PGP PUBLIC KEY BLOCK-----
7123-
`;
71247069
/**
71257070
* Configure basic OS stuff.
71267071
*/
@@ -7160,19 +7105,6 @@ function configOs() {
71607105
yield apt.runAptGetInstall(["tzdata"]);
71617106
});
71627107
}
7163-
/**
7164-
* Add OSRF APT repository key.
7165-
*
7166-
* This is necessary even when building from source to install colcon, vcs, etc.
7167-
*/
7168-
function addAptRepoKey() {
7169-
return __awaiter(this, void 0, void 0, function* () {
7170-
const workspace = process.env.GITHUB_WORKSPACE;
7171-
const keyFilePath = path.join(workspace, "ros.key");
7172-
fs_1.default.writeFileSync(keyFilePath, openRoboticsAptPublicGpgKey);
7173-
yield utils.exec("sudo", ["apt-key", "add", keyFilePath]);
7174-
});
7175-
}
71767108
// Ubuntu distribution for ROS 1
71777109
const ros1UbuntuVersion = "focal";
71787110
/**
@@ -7184,17 +7116,29 @@ function addAptRepo(ubuntuCodename, use_ros2_testing) {
71847116
return __awaiter(this, void 0, void 0, function* () {
71857117
// There is now no Ubuntu version overlap between ROS 1 and ROS 2
71867118
if (ros1UbuntuVersion === ubuntuCodename) {
7119+
yield utils.exec("sudo", [
7120+
"bash",
7121+
"-c",
7122+
"curl -s https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros-archive-keyring.gpg | apt-key add -",
7123+
]);
71877124
yield utils.exec("sudo", [
71887125
"bash",
71897126
"-c",
71907127
`echo "deb http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
71917128
]);
71927129
}
71937130
else {
7131+
const arch = yield utils.getArch();
7132+
const keyring = "/usr/share/keyrings/ros-archive-keyring.gpg";
7133+
yield utils.exec("sudo", [
7134+
"bash",
7135+
"-c",
7136+
`curl -sSL https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros2-archive-keyring.gpg -o ${keyring}`,
7137+
]);
71947138
yield utils.exec("sudo", [
71957139
"bash",
71967140
"-c",
7197-
`echo "deb http://packages.ros.org/ros2${use_ros2_testing ? "-testing" : ""}/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros2-latest.list`,
7141+
`echo "deb [arch=${arch} signed-by=${keyring}] http://packages.ros.org/ros2${use_ros2_testing ? "-testing" : ""}/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros2-latest.list`,
71987142
]);
71997143
}
72007144
yield utils.exec("sudo", ["apt-get", "update"]);
@@ -7226,7 +7170,6 @@ function runLinux() {
72267170
const use_ros2_testing = core.getInput("use-ros2-testing") === "true";
72277171
const installConnext = core.getInput("install-connext") === "true";
72287172
yield configOs();
7229-
yield addAptRepoKey();
72307173
const ubuntuCodename = yield utils.determineDistribCodename();
72317174
yield addAptRepo(ubuntuCodename, use_ros2_testing);
72327175
if ("noble" !== ubuntuCodename) {

src/setup-ros-ubuntu.ts

Lines changed: 13 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -5,60 +5,6 @@ import * as apt from "./package_manager/apt";
55
import * as pip from "./package_manager/pip";
66
import * as utils from "./utils";
77

8-
import * as path from "path";
9-
import fs from "fs";
10-
11-
// Open Robotics APT Repository public GPG key, as retrieved at:
12-
// https://github.com/ros/rosdistro/blob/master/ros.asc
13-
//
14-
// Unfortunately, usin apt-key adv is slow, and is failing sometimes, causing
15-
// spurious pipelines failures. The action is hard-coding the key here to
16-
// mitigate this issue.
17-
const openRoboticsAptPublicGpgKey = `
18-
-----BEGIN PGP PUBLIC KEY BLOCK-----
19-
Version: GnuPG v1
20-
21-
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
58-
=9IZg
59-
-----END PGP PUBLIC KEY BLOCK-----
60-
`;
61-
628
/**
639
* Configure basic OS stuff.
6410
*/
@@ -100,18 +46,6 @@ async function configOs(): Promise<void> {
10046
await apt.runAptGetInstall(["tzdata"]);
10147
}
10248

103-
/**
104-
* Add OSRF APT repository key.
105-
*
106-
* This is necessary even when building from source to install colcon, vcs, etc.
107-
*/
108-
async function addAptRepoKey(): Promise<void> {
109-
const workspace = process.env.GITHUB_WORKSPACE as string;
110-
const keyFilePath = path.join(workspace, "ros.key");
111-
fs.writeFileSync(keyFilePath, openRoboticsAptPublicGpgKey);
112-
await utils.exec("sudo", ["apt-key", "add", keyFilePath]);
113-
}
114-
11549
// Ubuntu distribution for ROS 1
11650
const ros1UbuntuVersion = "focal";
11751

@@ -126,16 +60,28 @@ async function addAptRepo(
12660
): Promise<void> {
12761
// There is now no Ubuntu version overlap between ROS 1 and ROS 2
12862
if (ros1UbuntuVersion === ubuntuCodename) {
63+
await utils.exec("sudo", [
64+
"bash",
65+
"-c",
66+
"curl -s https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros-archive-keyring.gpg | apt-key add -",
67+
]);
12968
await utils.exec("sudo", [
13069
"bash",
13170
"-c",
13271
`echo "deb http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
13372
]);
13473
} else {
74+
const arch = await utils.getArch();
75+
const keyring = "/usr/share/keyrings/ros-archive-keyring.gpg";
76+
await utils.exec("sudo", [
77+
"bash",
78+
"-c",
79+
`curl -sSL https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros2-archive-keyring.gpg -o ${keyring}`,
80+
]);
13581
await utils.exec("sudo", [
13682
"bash",
13783
"-c",
138-
`echo "deb http://packages.ros.org/ros2${
84+
`echo "deb [arch=${arch} signed-by=${keyring}] http://packages.ros.org/ros2${
13985
use_ros2_testing ? "-testing" : ""
14086
}/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros2-latest.list`,
14187
]);
@@ -170,8 +116,6 @@ export async function runLinux(): Promise<void> {
170116

171117
await configOs();
172118

173-
await addAptRepoKey();
174-
175119
const ubuntuCodename = await utils.determineDistribCodename();
176120
await addAptRepo(ubuntuCodename, use_ros2_testing);
177121

0 commit comments

Comments
 (0)