Skip to content

ci: align ISO workflow with Ubuntu 24.04 and ROS 2 Jazzy#42

Merged
asa-naki merged 1 commit into
scramble-robot:mainfrom
Yuichiroh-Kobayashi:ci/align-ubuntu24-jazzy-workflow-upstream
May 30, 2026
Merged

ci: align ISO workflow with Ubuntu 24.04 and ROS 2 Jazzy#42
asa-naki merged 1 commit into
scramble-robot:mainfrom
Yuichiroh-Kobayashi:ci/align-ubuntu24-jazzy-workflow-upstream

Conversation

@Yuichiroh-Kobayashi
Copy link
Copy Markdown
Collaborator

概要

この PR では、ISO ビルド用の README 記述と GitHub Actions workflow を、現在の基準である Ubuntu 24.04 + ROS 2 Jazzy に合わせます。

主な変更点は次の通りです。

  • ISO build matrix を AMD64 / ARM64 ともに Ubuntu 24.04 + ROS 2 Jazzy に統一
  • 古い AMD64 向け Ubuntu 22.04 / ROS 2 Humble の artifact 名・release notes 記述を更新
  • README の GitHub Actions 説明を、実際の workflow に合わせて manual-only として整理
  • 将来 Ubuntu 26.04 + ROS 2 Lyrical へ baseline を上げる場合に、workflow matrix / artifact 名 / release notes / dependency compatibility notes / README をまとめて更新する必要があることを明記

変更ファイル

  • README.md
  • .github/workflows/build-iso.yml

検証

実施した確認:

  • git diff -- README.md .github/workflows/build-iso.yml
  • git diff --check
  • README / workflow 内の古い Ubuntu 22.04 / ROS 2 Humble 参照の検索
  • yamllint .github/workflows/build-iso.yml

結果:

  • README / workflow 内の古い Ubuntu 22.04 / ROS 2 Humble 参照は解消済み
  • yamllint は exit code 0
  • 既存の warning として document start --- 欠落と長い行の警告あり

実行していないこと

この PR では次を実行していません。

  • ISO build
  • QEMU test
  • Ansible playbook 実行
  • package install
  • systemd 操作

@asa-naki asa-naki merged commit f20dab1 into scramble-robot:main May 30, 2026
1 check passed
Yuichiroh-Kobayashi added a commit to Yuichiroh-Kobayashi/questix that referenced this pull request May 31, 2026
* ci: align ISO workflow with Ubuntu 24.04 and ROS 2 Jazzy (scramble-robot#42)

* ci: fix ansible lint validation (scramble-robot#43)

* docs: update README with detailed setup instructions for AMD64 and Raspberry Pi 5 (scramble-robot#44)

Co-authored-by: Copilot <copilot@github.com>

* fix:  fix launch files and parameters for consistency and clarity (scramble-robot#45)

* fix:  fix launch files and parameters for consistency and clarity

Co-authored-by: Copilot <copilot@github.com>

* style: apply clang-format to joy_gate component

---------

Co-authored-by: Copilot <copilot@github.com>

* feat: update licenses to MIT across all packages and add LICENSE file (scramble-robot#46)

* fix(launcher): restore fire_button=5 and add per-controller YAML profiles (scramble-robot#47)

shot_config.yaml previously had fire_button=0 but was historically
overridden by shot_component.launch.py default of 5. After the
parameter-unification refactor that override is gone, so the YAML's 0
became the effective binding (DualShock X / Switch2 B), breaking both
controllers.

- Restore fire_button to 5 in shot_config.yaml (Switch2 R / DualShock R1).
- Add shot_config.{dualshock,uart}.yaml and esc_motor_control_cpp.{dualshock,uart}.yaml
  profiles, automatically selected from controller_type.
- launcher/launch/shot_component.launch.xml: accept controller_type and
  default shot_config_file/esc_config_file to the per-controller profile.
- launcher/launch/questix_core.launch.xml: forward controller_type.

* fix: improve launch parameter consistency after controller profiles (scramble-robot#48)

* docs: add AI agent guidance (scramble-robot#49)

* docs: add AI agent guidance

* docs: enhance guidance in AGENTS.md and CLAUDE.md for clarity and consistency

---------

Co-authored-by: asa-naki <aki.grade2580@outlook.jp>

* fix: update setup instructions for improved execution flow (scramble-robot#50)

* fix: mark desktop shortcut as trusted for GNOME to allow launching without manual permission (scramble-robot#51)

* fix: update setup scripts and configuration for improved clarity and … (scramble-robot#52)

* fix: update setup scripts and configuration for improved clarity and organization

* fix: run ansible-playbook from repo root to pick up ansible.cfg

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: resolve recursive loop in AMD64 setup_dev.yaml role vars (scramble-robot#54)

* Initial plan

* Fix recursive loop in setup_dev.yaml role vars

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* fix: fix dev workspace path resolution in setup_dev playbook (scramble-robot#56)

* Initial plan

* fix(ansible): use ansible_user_dir for dev workspace paths

* fix(ansible): replace ansible_env.USER with ansible_user_id in file ownership

ansible_env.USER suffers the same become-escalation drift as ansible_env.HOME:
when the play runs with become: true, facts are gathered as root, so
ansible_env.USER resolves to "root" instead of the connection user.

ansible_user_id is gathered independently of privilege escalation and is
consistent with the ansible_user_dir already used for the path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ansible): capture connection user before become escalation in setup_dev

ansible_user_dir and ansible_user_id are gathered facts. When become: true
is set at play level, gather_facts runs as root, so both variables resolve
to root's home/username — the same underlying bug as ansible_env.HOME.

Fix by capturing HOME and USER in a dedicated become: false pre_task before
privilege escalation takes effect, and using conn_user_home / conn_user_name
throughout the post_tasks that operate on the connection user's home.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ansible): resolve target user via getent and remove workspace dir creation

Root cause: become: true at play level causes gather_facts to run as root,
so ansible_env.HOME/USER, ansible_user_dir, and ansible_user_id all resolve
to root's values. Even become: false on a set_fact task does not help when
ansible-playbook itself is invoked via sudo.

Fix: resolve the connection user via ansible_user > SUDO_USER > USER priority,
then look up the actual home directory from /etc/passwd using getent. This is
reliable regardless of how ansible-playbook was invoked.

Also remove the "Create development workspace directory" task — workspace
creation is the developer's responsibility and was the source of the
permission error when running as root.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ansible): update connection user retrieval and validation in setup_dev playbook

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: asa-naki <aki.grade2580@outlook.jp>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: restore chroot ansible config

* fix: address ansible review feedback

* fix: run connection user lookup in check mode

* fix: fetch ros apt source version in check mode

---------

Co-authored-by: Akihisa Nagata <54956813+asa-naki@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: asa-naki <aki.grade2580@outlook.jp>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants