Skip to content

Implement GPS Fusion #35

Implement GPS Fusion

Implement GPS Fusion #35

Workflow file for this run

name: Build and Publish Docker Images
on:
pull_request:
branches: ["development"]
paths:
- ".devcontainer/Dockerfile_Jammy"
- ".devcontainer/Dockerfile_Focal"
- ".devcontainer/Dockerfile_JetPack"
push:
branches: ["development"]
paths:
- ".devcontainer/Dockerfile_Jammy"
- ".devcontainer/Dockerfile_Focal"
- ".devcontainer/Dockerfile_JetPack"
workflow_dispatch:
concurrency:
group: "docker"
cancel-in-progress: false
jobs:
build-and-push:
strategy:
fail-fast: false
matrix:
os: [[self-hosted, linux, X64], [self-hosted, linux, ARM64]]
name: [Jammy, Focal, JetPack]
file: [Dockerfile_Jammy, Dockerfile_Focal, Dockerfile_JetPack]
image: [autonomy-jammy, autonomy-focal, autonomy-jetpack]
arch: [amd64, arm64]
exclude:
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, X64]
name: Focal
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Jammy
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: Focal
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Jammy
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jetpack
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_Focal
image: autonomy-jetpack
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jammy
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jammy
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-focal
arch: amd64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-focal
arch: arm64
- os: [self-hosted, linux, ARM64]
name: JetPack
file: Dockerfile_JetPack
image: autonomy-jetpack
arch: amd64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check for Edits
id: changed-files
uses: tj-actions/changed-files@v39
with:
files_yaml: |
dev:
- ".devcontainer/${{ matrix.file }}"
- name: Get Current Date and Time
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d-%H-%M-%S')"
- name: Set up Docker Buildx
if: steps.changed-files.outputs.dev_any_changed == 'true'
id: buildx
uses: docker/setup-buildx-action@v3
- name: Login to Github Packages
if: steps.changed-files.outputs.dev_any_changed == 'true'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push ${{ matrix.name }} Image with Date Tag
if: ${{ ( github.event_name == 'pull_request' || ( github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/development' )) && steps.changed-files.outputs.dev_any_changed == 'true' }}
uses: docker/build-push-action@v5
with:
context: ".devcontainer/"
file: ".devcontainer/${{ matrix.file }}"
tags: "ghcr.io/missourimrdt/${{ matrix.image }}:${{ steps.date.outputs.date }}"
platform: "linux/${{ matrix.arch }}"
push: true
- name: Build and Push ${{ matrix.name }} Image with Latest Tag
if: ${{ github.event_name == 'push' && steps.changed-files.outputs.dev_any_changed == 'true' }}
uses: docker/build-push-action@v5
with:
context: ".devcontainer/"
file: ".devcontainer/${{ matrix.file }}"
tags: |
"ghcr.io/missourimrdt/${{ matrix.image }}:${{ steps.date.outputs.date }}"
"ghcr.io/missourimrdt/${{ matrix.image }}:latest"
platform: "linux/${{ matrix.arch }}"
push: true
- name: ${{ matrix.name }} Image digest
if: steps.changed-files.outputs.dev_any_changed == 'true'
run: echo ${{ steps.docker_build.outputs.digest }}