--- # 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@v6 with: persist-credentials: false - name: Install dependencies run: | sudo apt-get install podman buildah - name: Set up Go 1.22 uses: actions/setup-go@v6 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 }}