Skip to content

nightly

nightly #417

Workflow file for this run

name: nightly
run-name: ${{ (github.event_name == 'schedule') && 'nightly ' || '' }}${{ inputs.ROS_SOURCES }}
on:
workflow_dispatch:
inputs:
ROS_SOURCES:
type: string
description: 'ROS sources to compile:'
required: false
COLCON_PKG_SELECTION:
type: string
description: 'colcon package selection:'
required: false
ENFORCE_REBUILD:
type: boolean
description: Enforce rebuilding existing packages?
required: true
default: false
DEPLOY:
type: boolean
description: Deploy to reprepro server?
required: true
default: true
VERBOSE:
type: string
description: "verbose steps (sbuild/bloom):"
required: false
schedule:
# 8 PM UTC every day
- cron: "0 20 * * *"
# Don't allow concurrent runs of workflows deploying to same target
concurrency:
group: build-and-deploy-to-${{ vars.DEPLOY_URL }}
cancel-in-progress: false
jobs:
build:
strategy:
fail-fast: false
matrix:
DEB_DISTRO: [jammy, noble]
ARCH: [x64, arm64]
uses: ./.github/workflows/build.yaml
with:
DEB_DISTRO: ${{ matrix.DEB_DISTRO }}
ARCH: ${{ matrix.ARCH }}
ROS_SOURCES: ${{ inputs.ROS_SOURCES || 'gazebo.repos ros-one.repos' }}
INSTALL_GPG_KEYS: |
sudo curl -sSL https://ros.packages.techfak.net/gpg.key -o /etc/apt/keyrings/ros-one-keyring.gpg
EXTRA_DEB_SOURCES: "deb [signed-by=/etc/apt/keyrings/ros-one-keyring.gpg] https://ros.packages.techfak.net ${{matrix.DEB_DISTRO}}-testing main"
EXTRA_ROSDEP_SOURCES: |
rosdep.yaml
https://ros.packages.techfak.net/ros-one.yaml
# proceed from existing debs artifact if run_attempt > 1
DOWNLOAD_DEBS: ${{ github.run_attempt != '1' }}
DEBS_ARTIFACT_NAME: ${{ matrix.DEB_DISTRO }}-${{ matrix.ARCH }}-debs
SKIP_EXISTING: ${{ ! inputs.ENFORCE_REBUILD }}
SKIP_KNOWN_FAILING: true
CONTINUE_ON_ERROR: true
INSTALL_TO_CHROOT: false
COLCON_PKG_SELECTION: ${{ inputs.COLCON_PKG_SELECTION }}
VERBOSE: ${{ inputs.VERBOSE || vars.VERBOSE || '' }}
deploy:
needs: build
# deploy needs: DEPLOY_URL defined
# allow manual trigger with in additional run attempts
# by default, only deploy main branch
if: |
vars.DEPLOY_URL &&
(
github.run_attempt > 1 ||
(!cancelled() &&
(inputs.DEPLOY || github.ref == 'refs/heads/main'))
)
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Import build artifacts to reprepro server
uses: ./reprepro
with:
url: "${{ vars.DEPLOY_URL }}?run_id=${{ github.run_id }}"