Helper Docker images for testing #200
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
--- | |
# Copyright (c) Ansible Project | |
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
name: Helper Docker images for testing | |
on: | |
# Run CI against all pushes (direct commits, also merged PRs), Pull Requests | |
push: | |
branches: | |
- main | |
paths: | |
- .github/workflows/docker-images.yml | |
- tests/images/** | |
pull_request: | |
branches: | |
- main | |
paths: | |
- .github/workflows/docker-images.yml | |
- tests/images/** | |
# Run CI once per day (at 03:00 UTC) | |
schedule: | |
- cron: '0 3 * * *' | |
env: | |
CONTAINER_REGISTRY: ghcr.io/ansible-collections | |
jobs: | |
build: | |
name: Build image ${{ matrix.name }}:${{ matrix.tag }} | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: simple-1 | |
tag: tag | |
tag-as-latest: true | |
- name: simple-2 | |
tag: tag | |
tag-as-latest: true | |
- name: healthcheck | |
tag: check | |
tag-as-latest: true | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install dependencies | |
run: | | |
sudo apt-get install podman buildah | |
- name: Set up Go 1.22 | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.22' | |
cache: false # true (default) results in warnings since we don't use Go modules | |
- name: Build ${{ matrix.name }} image | |
run: | | |
./build.sh "${CONTAINER_REGISTRY}/${{ matrix.name }}:${{ matrix.tag }}" | |
working-directory: tests/images/${{ matrix.name }} | |
- name: Tag image as latest | |
if: matrix.tag-as-latest && matrix.tag != 'latest' | |
run: | | |
podman tag "${CONTAINER_REGISTRY}/${{ matrix.name }}:${{ matrix.tag }}" "${CONTAINER_REGISTRY}/${{ matrix.name }}:latest" | |
- name: Publish container image ${{ env.CONTAINER_REGISTRY }}/${{ matrix.name }}:${{ matrix.tag }} | |
if: github.event_name != 'pull_request' | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
registry: ${{ env.CONTAINER_REGISTRY }} | |
image: ${{ matrix.name }} | |
tags: ${{ matrix.tag }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish container image ${{ env.CONTAINER_REGISTRY }}/${{ matrix.name }}:latest | |
if: github.event_name != 'pull_request' && matrix.tag-as-latest && matrix.tag != 'latest' | |
uses: redhat-actions/push-to-registry@v2 | |
with: | |
registry: ${{ env.CONTAINER_REGISTRY }} | |
image: ${{ matrix.name }} | |
tags: latest | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} |