-
Notifications
You must be signed in to change notification settings - Fork 100
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use reusable-industrial-ci-with-cache
- Loading branch information
1 parent
d157cb0
commit e923fc9
Showing
4 changed files
with
112 additions
and
105 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,43 +13,13 @@ on: | |
|
||
jobs: | ||
binary: | ||
name: binary build | ||
runs-on: ubuntu-latest | ||
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml | ||
strategy: | ||
matrix: | ||
env: | ||
- {ROS_DISTRO: humble, ROS_REPO: main} | ||
- {ROS_DISTRO: humble, ROS_REPO: testing} | ||
env: | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
BASEDIR: ${{ github.workspace }}/.work | ||
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
# The target directory cache doesn't include the source directory because | ||
# that comes from the checkout. See "prepare target_ws for cache" task below | ||
- name: cache target_ws | ||
if: ${{ ! matrix.env.CCOV }} | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.BASEDIR }}/target_ws | ||
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }} | ||
restore-keys: | | ||
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} | ||
- name: cache ccache | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.CCACHE_DIR }} | ||
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} | ||
restore-keys: | | ||
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} | ||
ccache-${{ env.CACHE_PREFIX }} | ||
- uses: 'ros-industrial/industrial_ci@master' | ||
env: ${{matrix.env}} | ||
- name: prepare target_ws for cache | ||
if: ${{ always() && ! matrix.env.CCOV }} | ||
run: | | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete | ||
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
with: | ||
ros_distro: ${{ matrix.env.ROS_DISTRO }} | ||
ros_repo: ${{ matrix.env.ROS_REPO }} | ||
ref_for_scheduled_build: ros2-master |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,43 +13,13 @@ on: | |
|
||
jobs: | ||
binary: | ||
name: binary build | ||
runs-on: ubuntu-latest | ||
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml | ||
strategy: | ||
matrix: | ||
env: | ||
- {ROS_DISTRO: iron, ROS_REPO: main} | ||
- {ROS_DISTRO: iron, ROS_REPO: testing} | ||
env: | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
BASEDIR: ${{ github.workspace }}/.work | ||
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
# The target directory cache doesn't include the source directory because | ||
# that comes from the checkout. See "prepare target_ws for cache" task below | ||
- name: cache target_ws | ||
if: ${{ ! matrix.env.CCOV }} | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.BASEDIR }}/target_ws | ||
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }} | ||
restore-keys: | | ||
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} | ||
- name: cache ccache | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.CCACHE_DIR }} | ||
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} | ||
restore-keys: | | ||
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} | ||
ccache-${{ env.CACHE_PREFIX }} | ||
- uses: 'ros-industrial/industrial_ci@master' | ||
env: ${{matrix.env}} | ||
- name: prepare target_ws for cache | ||
if: ${{ always() && ! matrix.env.CCOV }} | ||
run: | | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete | ||
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
with: | ||
ros_distro: ${{ matrix.env.ROS_DISTRO }} | ||
ros_repo: ${{ matrix.env.ROS_REPO }} | ||
ref_for_scheduled_build: ros2-master |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,45 +11,16 @@ on: | |
# Run every day to detect flakiness and broken dependencies | ||
- cron: '28 6 * * *' | ||
|
||
|
||
jobs: | ||
binary: | ||
name: binary build | ||
runs-on: ubuntu-latest | ||
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml | ||
strategy: | ||
matrix: | ||
env: | ||
- {ROS_DISTRO: rolling, ROS_REPO: main} | ||
- {ROS_DISTRO: rolling, ROS_REPO: testing} | ||
env: | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
BASEDIR: ${{ github.workspace }}/.work | ||
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
# The target directory cache doesn't include the source directory because | ||
# that comes from the checkout. See "prepare target_ws for cache" task below | ||
- name: cache target_ws | ||
if: ${{ ! matrix.env.CCOV }} | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.BASEDIR }}/target_ws | ||
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }} | ||
restore-keys: | | ||
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} | ||
- name: cache ccache | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.CCACHE_DIR }} | ||
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} | ||
restore-keys: | | ||
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} | ||
ccache-${{ env.CACHE_PREFIX }} | ||
- uses: 'ros-industrial/industrial_ci@master' | ||
env: ${{matrix.env}} | ||
- name: prepare target_ws for cache | ||
if: ${{ always() && ! matrix.env.CCOV }} | ||
run: | | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete | ||
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
with: | ||
ros_distro: ${{ matrix.env.ROS_DISTRO }} | ||
ros_repo: ${{ matrix.env.ROS_REPO }} | ||
ref_for_scheduled_build: ros2-master |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
name: Reusable industrial_ci Workflow with Cache | ||
# Reusable action to simplify dealing with ROS/ROS2 industrial_ci builds with cache | ||
# author: Denis Štogl <[email protected]> | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
ref_for_scheduled_build: | ||
description: 'Reference on which the repo should be checkout for scheduled build. Usually is this name of a branch or a tag.' | ||
default: '' | ||
required: false | ||
type: string | ||
|
||
upstream_workspace: | ||
description: 'UPSTREAM_WORKSPACE variable for industrial_ci. Usually path to local .repos file.' | ||
required: true | ||
type: string | ||
ros_distro: | ||
description: 'ROS_DISTRO variable for industrial_ci' | ||
required: true | ||
type: string | ||
ros_repo: | ||
description: 'ROS_REPO to run for industrial_ci. Possible values: "main", "testing"' | ||
default: 'main' | ||
required: false | ||
type: string | ||
os_code_name: | ||
description: 'OS_CODE_NAME variable for industrial_ci' | ||
default: '' | ||
required: false | ||
type: string | ||
before_install_upstream_dependencies: | ||
description: 'BEFORE_INSTALL_UPSTREAM_DEPENDENCIES variable for industrial_ci' | ||
default: '' | ||
required: false | ||
type: string | ||
|
||
ccache_dir: | ||
description: 'Local path to store cache (from "github.workspace"). For standard industrial_ci configuration do not have to be changed' | ||
default: '.ccache' | ||
required: false | ||
type: string | ||
basedir: | ||
description: 'Local path to workspace base directory to cache (from "github.workspace"). For standard industrial_ci configuration do not have to be changed' | ||
default: '.work' | ||
required: false | ||
type: string | ||
|
||
|
||
jobs: | ||
reusable_industrial_ci_with_cache: | ||
name: ${{ inputs.ros_distro }} ${{ inputs.ros_repo }} ${{ inputs.os_code_name }} | ||
runs-on: ubuntu-latest | ||
env: | ||
CCACHE_DIR: ${{ github.workspace }}/${{ inputs.ccache_dir }} | ||
BASEDIR: ${{ github.workspace }}/${{ inputs.basedir }} | ||
CACHE_PREFIX: ${{ inputs.ros_distro }}-${{ inputs.upstream_workspace }}-${{ inputs.ros_repo }}-${{ github.job }} | ||
steps: | ||
- name: Checkout default ref when build is not scheduled | ||
if: ${{ github.event_name != 'schedule' }} | ||
uses: actions/checkout@v4 | ||
- name: Checkout ${{ inputs.ref_for_scheduled_build }} on scheduled build | ||
if: ${{ github.event_name == 'schedule' }} | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ inputs.ref_for_scheduled_build }} | ||
- name: cache target_ws | ||
if: ${{ ! matrix.env.CCOV }} | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.BASEDIR }}/target_ws | ||
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }} | ||
restore-keys: | | ||
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} | ||
- name: cache ccache | ||
uses: pat-s/[email protected] | ||
with: | ||
path: ${{ env.CCACHE_DIR }} | ||
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} | ||
restore-keys: | | ||
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} | ||
ccache-${{ env.CACHE_PREFIX }} | ||
- uses: 'ros-industrial/industrial_ci@master' | ||
env: | ||
UPSTREAM_WORKSPACE: ${{ inputs.upstream_workspace }} | ||
ROS_DISTRO: ${{ inputs.ros_distro }} | ||
ROS_REPO: ${{ inputs.ros_repo }} | ||
OS_CODE_NAME: ${{ inputs.os_code_name }} | ||
BEFORE_INSTALL_UPSTREAM_DEPENDENCIES: ${{ inputs.before_install_upstream_dependencies }} | ||
- name: prepare target_ws for cache | ||
if: ${{ always() && ! matrix.env.CCOV }} | ||
run: | | ||
du -sh ${{ env.BASEDIR }}/target_ws | ||
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete | ||
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src | ||
du -sh ${{ env.BASEDIR }}/target_ws |