Skip to content

Update workflows for all pull request tests in test.yml #1095

Update workflows for all pull request tests in test.yml

Update workflows for all pull request tests in test.yml #1095

Workflow file for this run

name: Dockerfiles
# Test and push dockerfiles when merged into main and on schedule.
on:
push:
branches:
- main
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 0 1 * *"
workflow_dispatch:
# Cancel in-progress funs of the same workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
docker:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- label: ros
tag: noetic
target: base
platforms: "linux/amd64,linux/arm64"
- label: ros
tag: noetic
target: dev
platforms: "linux/amd64,linux/arm64"
- label: ros
tag: noetic
target: full
platforms: "linux/amd64,linux/arm64"
- label: ros
tag: noetic
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: rolling
target: base
platforms: "linux/amd64,linux/arm64/v8"
- label: ros2
tag: rolling
target: dev
platforms: "linux/amd64"
- label: ros2
tag: rolling
target: full
platforms: "linux/amd64"
- label: ros2
tag: rolling
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: rolling-cuda
target: base
platforms: "linux/amd64"
- label: ros2
tag: rolling-cuda
target: dev
platforms: "linux/amd64"
- label: ros2
tag: rolling-cuda
target: full
platforms: "linux/amd64"
- label: ros2
tag: rolling-cuda
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: jazzy
target: base
platforms: "linux/amd64,linux/arm64/v8"
- label: ros2
tag: jazzy
target: dev
platforms: "linux/amd64"
- label: ros2
tag: jazzy
target: full
platforms: "linux/amd64"
- label: ros2
tag: jazzy
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: iron
target: base
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: iron
target: dev
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: iron
target: full
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: iron
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: iron-cuda
target: base
platforms: "linux/amd64"
- label: ros2
tag: iron-cuda
target: dev
platforms: "linux/amd64"
- label: ros2
tag: iron-cuda
target: full
platforms: "linux/amd64"
- label: ros2
tag: iron-cuda
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: humble
target: base
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: humble
target: dev
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: humble
target: full
platforms: "linux/amd64,linux/arm64"
- label: ros2
tag: humble
target: gazebo
platforms: "linux/amd64"
- label: ros2
tag: humble-cuda
target: base
platforms: "linux/amd64"
- label: ros2
tag: humble-cuda
target: dev
platforms: "linux/amd64"
- label: ros2
tag: humble-cuda
target: full
platforms: "linux/amd64"
- label: ros2
tag: humble-cuda
target: gazebo
platforms: "linux/amd64"
- label: gazebo
tag: gazebo11
target: base
platforms: "linux/amd64"
- label: gazebo
tag: gazebo11
target: dev
platforms: "linux/amd64"
- label: ignition
tag: fortress
target: base
platforms: "linux/amd64"
- label: ignition
tag: fortress
target: dev
platforms: "linux/amd64"
- label: ignition
tag: citadel
target: base
platforms: "linux/amd64"
- label: ignition
tag: citadel
target: dev
platforms: "linux/amd64"
- label: gz
tag: harmonic
target: base
platforms: "linux/amd64"
- label: gz
tag: harmonic
target: dev
platforms: "linux/amd64"
- label: gz
tag: harmonic-cuda
target: base
platforms: "linux/amd64"
- label: gz
tag: harmonic-cuda
target: dev
platforms: "linux/amd64"
- label: gz
tag: garden
target: base
platforms: "linux/amd64"
- label: gz
tag: garden
target: dev
platforms: "linux/amd64"
- label: gz
tag: garden-cuda
target: base
platforms: "linux/amd64"
- label: gz
tag: garden-cuda
target: dev
platforms: "linux/amd64"
steps:
- uses: actions/checkout@v4
- name: Set current date
id: date
run: |
echo "date=$(date +%Y-%m-%d)" >> "$GITHUB_OUTPUT"
- name: Use current date
run: |
echo "Current date is ${{ steps.date.outputs.date }}"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
file: ${{ matrix.label }}/${{ matrix.tag }}.Dockerfile
target: ${{ matrix.target }}
platforms: ${{ matrix.platforms }}
tags: |
${{ vars.DOCKERHUB_USERNAME }}/${{ matrix.label }}:${{ matrix.tag }}-${{ matrix.target }}
${{ vars.DOCKERHUB_USERNAME }}/${{ matrix.label }}:${{ matrix.tag }}-${{ matrix.target }}-${{ steps.date.outputs.date }}
ghcr.io/${{ github.repository_owner }}/${{ matrix.label }}:${{ matrix.tag }}-${{ matrix.target }}
cache-from: |
type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.label }}:${{ matrix.tag }}-buildcache
type=gha
cache-to: |
type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.label }}:${{ matrix.tag }}-buildcache,mode=max
type=gha,mode=max