interactive: noble-one *.repos #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: interactive | |
run-name: "interactive: ${{ inputs.DEB_DISTRO || vars.DEB_DISTRO }}-${{ inputs.ROS_DISTRO || vars.ROS_DISTRO || 'one'}} ${{ inputs.ROS_SOURCES || vars.ROS_SOURCES }}" | |
on: | |
workflow_dispatch: | |
# The inputs should not define a default value. | |
# If they do, this value would be passed even if nothing is actually entered in the dialog, | |
# thus overriding any configuration variables set, which should be considered in this case. | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs | |
inputs: | |
# target distro | |
DEB_DISTRO: | |
type: string | |
required: true | |
description: 'Ubuntu/Debian distro:' | |
default: noble | |
ROS_DISTRO: | |
type: string | |
required: true | |
description: 'ROS distribution codename:' | |
default: one | |
# source selection | |
ROS_SOURCES: | |
type: string | |
description: 'ROS sources to compile:' | |
required: true | |
default: '*.repos' | |
COLCON_PKG_SELECTION: | |
type: string | |
description: 'colcon package selection:' | |
required: false | |
# build flow control | |
CONTINUE_BUILD: | |
type: boolean | |
description: Continue previous build? | |
required: true | |
default: false | |
SKIP_EXISTING: | |
type: boolean | |
description: Skip already built packages? | |
required: false | |
default: true | |
CONTINUE_ON_ERROR: | |
type: boolean | |
description: Continue on build errors? | |
required: false | |
default: true | |
# Installing built packages to chroot speeds up downstream builds? | |
INSTALL_TO_CHROOT: | |
type: boolean | |
description: Incrementally fill chroot? | |
required: false | |
# deployment options | |
PUSH_MODE: | |
type: choice | |
description: Push to DEPLOY_URL? | |
required: true | |
default: skip | |
options: | |
- skip | |
- push | |
- amend | |
- squash | |
MESSAGE: | |
type: string | |
description: Commit message | |
required: false | |
jobs: | |
build: | |
name: ${{ inputs.DEB_DISTRO || vars.DEB_DISTRO || 'latest' }}-${{ inputs.ROS_DISTRO || vars.ROS_DISTRO || 'one'}} | |
uses: larics/ros-builder-action/.github/workflows/build.yaml@main | |
with: | |
DEB_DISTRO: ${{ inputs.DEB_DISTRO || vars.DEB_DISTRO }} | |
ROS_DISTRO: ${{ inputs.ROS_DISTRO || vars.ROS_DISTRO || 'one' }} | |
ROS_SOURCES: ${{ inputs.ROS_SOURCES || vars.ROS_SOURCES }} | |
INSTALL_GPG_KEYS: | | |
sudo curl -sSL https://ros.packages.techfak.net/gpg.key -o /etc/apt/keyrings/ros-one-keyring.gpg | |
sudo mkdir -p /etc/ros/rosdep/sources.list.d | |
echo "yaml https://ros.packages.techfak.net/ros-one.yaml ${{ inputs.DEB_DISTRO || vars.DEB_DISTRO || '' }}" | sudo tee /etc/ros/rosdep/sources.list.d/1-ros-one.list | |
EXTRA_DEB_SOURCES: "${{ inputs.CONTINUE_BUILD && \ | |
format('deb [signed-by=/etc/apt/keyrings/ros-one-keyring.gpg] https://ros.packages.techfak.net {0}-build main', \ | |
inputs.DEB_DISTRO || vars.DEB_DISTRO) || '' }}" | |
COLCON_PKG_SELECTION: ${{ inputs.COLCON_PKG_SELECTION || vars.COLCON_PKG_SELECTION || '' }} | |
# proceed from existing debs artifact if run_attempt > 1 | |
DOWNLOAD_DEBS: ${{ github.run_attempt != '1' }} | |
SKIP_EXISTING: ${{ inputs.SKIP_EXISTING }} | |
CONTINUE_ON_ERROR: ${{ inputs.CONTINUE_ON_ERROR }} | |
INSTALL_TO_CHROOT: ${{ inputs.INSTALL_TO_CHROOT || vars.INSTALL_TO_CHROOT || false }} | |
deploy: | |
needs: build | |
if: always() && ( inputs.PUSH_MODE != 'skip' ) && vars.DEPLOY_URL | |
uses: ubi-agni/ros-builder-action/.github/workflows/deploy.yaml@main | |
with: | |
# content mode: 'add' if continueing build, 'replace' otherwise | |
CONTENT_MODE: ${{ inputs.CONTINUE_BUILD && 'add' || 'replace' }} | |
# default push mode: 'push' if continueing build, 'squash' otherwise | |
PUSH_MODE: ${{ inputs.PUSH_MODE || vars.PUSH_MODE || (inputs.CONTINUE_BUILD && 'push' || 'squash') }} | |
MESSAGE: "${{ inputs.MESSAGE || needs.build.outputs.LATEST_PACKAGE \ | |
&& format('build up to {0}', needs.build.outputs.LATEST_PACKAGE) \ | |
|| format('{0}-{1}', inputs.DEB_DISTRO || vars.DEB_DISTRO, inputs.ROS_DISTRO || vars.ROS_DISTRO || 'one') }}" | |
secrets: | |
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_PRIVATE_KEY }} |