Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for EOL distros and Ubuntu Bionic #592

Merged
merged 1 commit into from
Jul 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 1 addition & 31 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,6 @@ jobs:
# - macOS-latest
- windows-latest
ros_distribution:
# Foxy Fitzroy (June 2020 - May 2023)
- foxy
# Humble Hawksbill (May 2022 - May 2027)
- humble
# Iron Irwini (May 2023 - November 2024)
Expand Down Expand Up @@ -97,9 +95,7 @@ jobs:
fail-fast: false
matrix:
ros_distribution:
- melodic
- noetic
- foxy
- humble
- iron
- rolling
Expand All @@ -111,21 +107,11 @@ jobs:
#
# Platforms are defined in REP 3: https://ros.org/reps/rep-0003.html
include:
# Melodic Morenia (May 2018 - May 2023)
- docker_image: ubuntu:bionic
ros_distribution: melodic
ros_version: 1

# Noetic Ninjemys (May 2020 - May 2025)
- docker_image: ubuntu:focal
ros_distribution: noetic
ros_version: 1

# Foxy Fitzroy (June 2020 - May 2023)
- docker_image: ubuntu:focal
ros_distribution: foxy
ros_version: 2

# Humble Hawksbill (May 2022 - May 2027)
- docker_image: ubuntu:jammy
ros_distribution: humble
Expand Down Expand Up @@ -160,21 +146,6 @@ jobs:
- run: .github/workflows/check-ros2-distribution.sh "${{ matrix.ros_distribution }}"
if: matrix.ros_version == 2

test_multiple_ros_installations:
name: "ROS and ROS 2 Binary Install Test Suite (Linux only)"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/[email protected]
with:
node-version: "16.x"
- run: .github/workflows/build-and-test.sh
- uses: ./ # Uses an action in the root directory
with:
required-ros-distributions: noetic foxy
- run: .github/workflows/check-ros2-distribution.sh foxy
- run: .github/workflows/check-ros-distribution.sh noetic

test_repo_with_root_setup_cfg:
name: "Test with setup.cfg file in root directory (Linux only)"
runs-on: ubuntu-22.04
Expand All @@ -192,7 +163,7 @@ jobs:
name: "Test on a setup-ros-docker container"
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-focal-latest
image: rostooling/setup-ros-docker:ubuntu-jammy-latest
steps:
- uses: actions/checkout@v3
- uses: actions/[email protected]
Expand All @@ -208,7 +179,6 @@ jobs:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
steps:
- uses: actions/checkout@v3
Expand Down
18 changes: 1 addition & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ The workflow `test` is iterating on all ROS 2 distributions, on macOS, and Windo
The workflow `test_docker` is iterating on all ROS and ROS 2 distributions, for all supported Ubuntu distributions, using Docker.
The test matrix associates each distribution with one Docker image.
This is required to ensure that the appropriate Ubuntu container is used.
For example, Melodic requires `bionic`, Humble requires `jammy`, etc.
For example, Noetic requires `focal`, Humble requires `jammy`, etc.

```yaml
jobs:
Expand All @@ -195,7 +195,6 @@ jobs:
matrix:
os: [macOS-latest, windows-latest]
ros_distribution: # Only include ROS 2 distributions, as ROS 1 does not support macOS and Windows.
- foxy
- humble
- iron
steps:
Expand All @@ -213,9 +212,7 @@ jobs:
strategy:
matrix:
ros_distribution:
- melodic
- noetic
- foxy
- humble
- iron

Expand All @@ -228,24 +225,11 @@ jobs:
# https://ros.org/reps/rep-0003.html
# https://ros.org/reps/rep-2000.html
include:
# Melodic Morenia (May 2018 - May 2023)
- docker_image: ubuntu:bionic
ros_distribution: melodic
# Setting ros_version is helpful to customize the workflow
# depending on whether a ROS 1, or ROS 2 is being tested.
# See 'if: ros_version ==' below for an example.
ros_version: 1

# Noetic Ninjemys (May 2020 - May 2025)
- docker_image: ubuntu:focal
ros_distribution: noetic
ros_version: 1

# Foxy Fitzroy (June 2020 - May 2023)
- docker_image: ubuntu:focal
ros_distribution: foxy
ros_version: 2

# Humble Hawksbill (May 2022 - May 2027)
- docker_image: ubuntu:jammy
ros_distribution: humble
Expand Down
8 changes: 4 additions & 4 deletions __test__/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ describe("basic workflow tests", () => {
});
});

describe("required-ros-distributions/melodic workflow tests", () => {
describe("required-ros-distributions/noetic workflow tests", () => {
beforeAll(() => {
jest.spyOn(actions_exec, "exec").mockImplementation(jest.fn());
jest.spyOn(core, "getInput").mockReturnValue("melodic");
jest.spyOn(core, "getInput").mockReturnValue("noetic");
});

afterAll(() => {
Expand All @@ -54,9 +54,7 @@ describe("required-ros-distributions/melodic workflow tests", () => {

describe("validate distribution test", () => {
it("test valid", async () => {
await expect(utils.validateDistro(["melodic"])).toBe(true);
await expect(utils.validateDistro(["noetic"])).toBe(true);
await expect(utils.validateDistro(["foxy"])).toBe(true);
await expect(utils.validateDistro(["humble"])).toBe(true);
await expect(utils.validateDistro(["iron"])).toBe(true);
await expect(utils.validateDistro(["rolling"])).toBe(true);
Expand All @@ -75,12 +73,14 @@ describe("validate distribution test", () => {
await expect(utils.validateDistro(["jade"])).toBe(false);
await expect(utils.validateDistro(["kinetic"])).toBe(false);
await expect(utils.validateDistro(["lunar"])).toBe(false);
await expect(utils.validateDistro(["melodic"])).toBe(false);
//ROS2 End-of-Life
await expect(utils.validateDistro(["ardent"])).toBe(false);
await expect(utils.validateDistro(["bouncy"])).toBe(false);
await expect(utils.validateDistro(["crystal"])).toBe(false);
await expect(utils.validateDistro(["dashing"])).toBe(false);
await expect(utils.validateDistro(["eloquent"])).toBe(false);
await expect(utils.validateDistro(["foxy"])).toBe(false);
await expect(utils.validateDistro(["galactic"])).toBe(false);
// Does not exist or not all valid
await expect(utils.validateDistro(["foxy", "doesntexist"])).toBe(false);
Expand Down
2 changes: 0 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ inputs:

Allowed ROS distributions
- "" (no value) - no ROS binary installation
- melodic
- noetic
- foxy
- humble
- iron
- rolling
Expand Down
26 changes: 3 additions & 23 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6570,17 +6570,6 @@ const aptDependencies = [
"libtinyxml2-dev",
];
const distributionSpecificAptDependencies = {
bionic: [
// OpenSplice
"libopensplice69",
// python3-rosdep is conflicting with ros-melodic-desktop-full,
// and should not be used here. See ros-tooling/setup-ros#74
"python-rosdep",
// python required for sourcing setup.sh
"python",
"libc++-dev",
"libc++abi-dev",
],
focal: [
// python-rosdep does not exist on Focal, so python3-rosdep is used.
// The issue with ros-melodic-desktop-full is also non-applicable.
Expand All @@ -6598,7 +6587,6 @@ const distributionSpecificAptDependencies = {
],
};
const aptRtiConnextDds = {
bionic: "rti-connext-dds-5.3.1",
focal: "rti-connext-dds-5.3.1",
jammy: "rti-connext-dds-6.0.1",
};
Expand Down Expand Up @@ -7093,7 +7081,7 @@ WE+F5FaIKwb72PL4rLi4
-----END PGP PUBLIC KEY BLOCK-----
`;
// List of linux distributions that need http://packages.ros.org/ros/ubuntu APT repo
const distrosRequiringRosUbuntu = ["bionic", "focal"];
const distrosRequiringRosUbuntu = ["focal"];
/**
* Install ROS 2 on a Linux worker.
*/
Expand Down Expand Up @@ -7312,8 +7300,7 @@ const chocolatey = __importStar(__nccwpck_require__(855));
const pip = __importStar(__nccwpck_require__(6744));
const utils = __importStar(__nccwpck_require__(1314));
const binaryReleases = {
foxy: "https://github.com/ros2/ros2/releases/download/release-foxy-20221021/ros2-foxy-20221021-windows-release-amd64.zip",
humble: "https://github.com/ros2/ros2/releases/download/release-humble-20230213/ros2-humble-20230127-windows-release-amd64.zip",
humble: "https://github.com/ros2/ros2/releases/download/release-humble-20230614/ros2-humble-20230614-windows-release-amd64.zip",
iron: "https://github.com/ros2/ros2/releases/download/release-iron-20230523/ros2-iron-20230523-windows-release-amd64.zip",
};
const pip3Packages = ["lxml", "netifaces"];
Expand Down Expand Up @@ -7535,14 +7522,7 @@ function getRequiredRosDistributions() {
}
exports.getRequiredRosDistributions = getRequiredRosDistributions;
//list of valid linux distributions
const validDistro = [
"melodic",
"noetic",
"foxy",
"humble",
"iron",
"rolling",
];
const validDistro = ["noetic", "humble", "iron", "rolling"];
//Determine whether all inputs name supported ROS distributions.
function validateDistro(requiredRosDistributionsList) {
for (const rosDistro of requiredRosDistributionsList) {
Expand Down
13 changes: 0 additions & 13 deletions src/package_manager/apt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,6 @@ const aptDependencies: string[] = [
];

const distributionSpecificAptDependencies = {
bionic: [
// OpenSplice
"libopensplice69",

// python3-rosdep is conflicting with ros-melodic-desktop-full,
// and should not be used here. See ros-tooling/setup-ros#74
"python-rosdep",
// python required for sourcing setup.sh
"python",
"libc++-dev",
"libc++abi-dev",
],
focal: [
// python-rosdep does not exist on Focal, so python3-rosdep is used.
// The issue with ros-melodic-desktop-full is also non-applicable.
Expand All @@ -59,7 +47,6 @@ const distributionSpecificAptDependencies = {
};

const aptRtiConnextDds = {
bionic: "rti-connext-dds-5.3.1",
focal: "rti-connext-dds-5.3.1",
jammy: "rti-connext-dds-6.0.1",
};
Expand Down
2 changes: 1 addition & 1 deletion src/setup-ros-linux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ WE+F5FaIKwb72PL4rLi4
`;

// List of linux distributions that need http://packages.ros.org/ros/ubuntu APT repo
const distrosRequiringRosUbuntu = ["bionic", "focal"];
const distrosRequiringRosUbuntu = ["focal"];

/**
* Install ROS 2 on a Linux worker.
Expand Down
3 changes: 1 addition & 2 deletions src/setup-ros-windows.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import * as pip from "./package_manager/pip";
import * as utils from "./utils";

const binaryReleases: { [index: string]: string } = {
foxy: "https://github.com/ros2/ros2/releases/download/release-foxy-20221021/ros2-foxy-20221021-windows-release-amd64.zip",
humble:
"https://github.com/ros2/ros2/releases/download/release-humble-20230213/ros2-humble-20230127-windows-release-amd64.zip",
"https://github.com/ros2/ros2/releases/download/release-humble-20230614/ros2-humble-20230614-windows-release-amd64.zip",
iron: "https://github.com/ros2/ros2/releases/download/release-iron-20230523/ros2-iron-20230523-windows-release-amd64.zip",
};

Expand Down
9 changes: 1 addition & 8 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,7 @@ export function getRequiredRosDistributions(): string[] {
}

//list of valid linux distributions
const validDistro: string[] = [
"melodic",
"noetic",
"foxy",
"humble",
"iron",
"rolling",
];
const validDistro: string[] = ["noetic", "humble", "iron", "rolling"];

//Determine whether all inputs name supported ROS distributions.
export function validateDistro(
Expand Down