Skip to content

Commit 94ac2c2

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

File tree

2 files changed

+28
-141
lines changed

2 files changed

+28
-141
lines changed

dist/index.js

Lines changed: 14 additions & 71 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
/**
@@ -7183,18 +7115,30 @@ const ros1UbuntuVersion = "focal";
71837115
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
7118+
const keyring = "/usr/share/keyrings/ros-archive-keyring.gpg";
7119+
const arch = yield utils.getArch();
71867120
if (ros1UbuntuVersion === ubuntuCodename) {
71877121
yield utils.exec("sudo", [
71887122
"bash",
71897123
"-c",
7190-
`echo "deb http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
7124+
`curl https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros-archive-keyring.gpg -o ${keyring}`,
7125+
]);
7126+
yield utils.exec("sudo", [
7127+
"bash",
7128+
"-c",
7129+
`echo "deb [arch=${arch} signed-by=${keyring}] http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
71917130
]);
71927131
}
71937132
else {
71947133
yield utils.exec("sudo", [
71957134
"bash",
71967135
"-c",
7197-
`echo "deb http://packages.ros.org/ros2${use_ros2_testing ? "-testing" : ""}/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros2-latest.list`,
7136+
`curl https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros2-archive-keyring.gpg -o ${keyring}`,
7137+
]);
7138+
yield utils.exec("sudo", [
7139+
"bash",
7140+
"-c",
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: 14 additions & 70 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

@@ -125,17 +59,29 @@ async function addAptRepo(
12559
use_ros2_testing: boolean,
12660
): Promise<void> {
12761
// There is now no Ubuntu version overlap between ROS 1 and ROS 2
62+
const keyring = "/usr/share/keyrings/ros-archive-keyring.gpg";
63+
const arch = await utils.getArch();
12864
if (ros1UbuntuVersion === ubuntuCodename) {
12965
await utils.exec("sudo", [
13066
"bash",
13167
"-c",
132-
`echo "deb http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
68+
`curl https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros-archive-keyring.gpg -o ${keyring}`,
69+
]);
70+
await utils.exec("sudo", [
71+
"bash",
72+
"-c",
73+
`echo "deb [arch=${arch} signed-by=${keyring}] http://packages.ros.org/ros/ubuntu ${ubuntuCodename} main" > /etc/apt/sources.list.d/ros-latest.list`,
13374
]);
13475
} else {
13576
await utils.exec("sudo", [
13677
"bash",
13778
"-c",
138-
`echo "deb http://packages.ros.org/ros2${
79+
`curl https://github.com/ros-infrastructure/ros-apt-source/raw/refs/heads/main/ros-apt-source/keys/ros2-archive-keyring.gpg -o ${keyring}`,
80+
]);
81+
await utils.exec("sudo", [
82+
"bash",
83+
"-c",
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)