Skip to content

Commit

Permalink
Merge pull request #61 from ScriptAutomate/builddocs-image
Browse files Browse the repository at this point in the history
Add builddocs container; pre-commit update crons
  • Loading branch information
ScriptAutomate authored Oct 22, 2024
2 parents 45ff374 + 68af27f commit b69be76
Show file tree
Hide file tree
Showing 27 changed files with 271 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/amazonlinux-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Amazon Linux 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 17 * * *"
- cron: "0 16 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/archlinux-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "ArchLinux 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 15 * * *"
- cron: "0 14 * * *"
push:
branches:
- '*'
Expand Down
232 changes: 232 additions & 0 deletions .github/workflows/builddocs-containers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
name: "builddocs 🐳 Container"

on:
workflow_dispatch:
schedule:
- cron: "0 17 * * *"
push:
branches:
- '*'
paths:
- containers.yml
- '.github/workflows/builddocs-containers.yml'
- 'custom/builddocs/*'
pull_request:
paths:
- containers.yml
- '.github/workflows/builddocs-containers.yml'
- 'custom/builddocs/*'

env:
COLUMNS: 190
PATH_IN_REPO: custom/builddocs


concurrency:
# New builds always cancel previous, still running, builds
group: custom/builddocs-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
matrix-generator:
name: Generate Matrix
runs-on: ubuntu-latest
outputs:
tags: ${{ steps.set-matrix.outputs.tags }}
name: ${{ steps.set-matrix.outputs.name }}
dockerinfo: ${{ steps.set-matrix.outputs.dockerinfo }}
steps:
- name: "Throttle Builds"
run: |
t="$(shuf -i 5-30 -n 1)"; echo "Sleeping $t seconds"; sleep "$t"
- name: "Fetching Repository Contents"
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install Requirements
run: |
python -m pip install -r requirements.txt
- name: Show tools version
run: |
tools --debug --version
- name: "Generate Matrix Data"
id: set-matrix
run: |
tools ci matrix ${{ env.PATH_IN_REPO }}
build:
runs-on: ubuntu-latest
needs: matrix-generator
name: "Build ${{ matrix.dockerinfo.name }}:${{ matrix.dockerinfo.tag }}${{ matrix.dockerinfo.platform && format(' ({0})', matrix.dockerinfo.platform) || ''}}"
strategy:
fail-fast: false
max-parallel: 10
matrix:
dockerinfo: ${{ fromJson(needs.matrix-generator.outputs.dockerinfo) }}

permissions:
actions: read
checks: write
issues: read
packages: write
pull-requests: read
repository-projects: read
statuses: read

steps:
- name: "Fetching Repository Contents"
uses: actions/checkout@v4

- name: "Throttle concurrent pushes"
run: |
t="$(shuf -i 5-30 -n 1)"; echo "Sleeping $t seconds"; sleep "$t"
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository }}/${{ matrix.dockerinfo.name }}
tags: |
type=raw,value=${{ matrix.dockerinfo.tag }}
flavor: |
latest=false
- name: "Docker QEMU"
uses: docker/setup-qemu-action@v3

- name: "Docker BuildX"
id: buildx
uses: docker/setup-buildx-action@v3

- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: "Log into GitHub Container Registry"
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: "Build & Publish"
uses: docker/build-push-action@v5
id: build
with:
file: ${{ matrix.dockerinfo.file }}
context: ${{ env.PATH_IN_REPO }}
platforms: ${{ matrix.dockerinfo.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/${{ matrix.dockerinfo.name }},push-by-digest=true,name-canonical=true,push=${{
github.repository == 'saltstack/salt-ci-containers' && contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) }}

- name: Export digest
if: ${{ github.repository == 'saltstack/salt-ci-containers' && contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) }}
run: |
mkdir -p /tmp/digests
touch "/tmp/digests/$(echo ${{ steps.build.outputs.digest }} | cut -d ':' -f 2)"
ls -lah /tmp/digests
- name: Upload digest
if: ${{ github.repository == 'saltstack/salt-ci-containers' && contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) }}
uses: actions/upload-artifact@v4
with:
name: digests-${{ matrix.dockerinfo.name }}-${{ matrix.dockerinfo.tag }}-${{ matrix.dockerinfo.platform_slug }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
name: "Merge ${{ needs.matrix-generator.outputs.name }}:${{ matrix.tag }}"
if: ${{ github.repository == 'saltstack/salt-ci-containers' && contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) }}

strategy:
fail-fast: false
max-parallel: 10
matrix:
tag: ${{ fromJson(needs.matrix-generator.outputs.tags) }}

needs:
- matrix-generator
- build

permissions:
actions: read
checks: write
issues: read
packages: write
pull-requests: read
repository-projects: read
statuses: read

steps:

- name: "Fetching Repository Contents"
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install Requirements
run: |
python -m pip install -r requirements.txt
- name: Show tools version
run: |
tools --debug --version
- name: Download digests
uses: actions/download-artifact@v4
with:
pattern: digests-${{ needs.matrix-generator.outputs.name }}-${{ matrix.tag }}-*
merge-multiple: true
path: /tmp/digests

- name: Show digests
run: |
tree -a /tmp/digests
cat /tmp/digests/*
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository }}/${{ needs.matrix-generator.outputs.name }}
tags: |
type=raw,value=${{ matrix.tag }}
flavor: |
latest=false
- name: "Log into GitHub Container Registry"
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create manifest list and push
run: |
tools ci create-manifest-list-and-push ghcr.io/${{ github.repository }}/${{ needs.matrix-generator.outputs.name }} /tmp/digests
- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/${{ github.repository }}/${{ needs.matrix-generator.outputs.name }}:${{ steps.meta.outputs.version }}
2 changes: 1 addition & 1 deletion .github/workflows/busybox-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "BusyBox 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 14 * * *"
- cron: "0 13 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/consul-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Consul 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 13 * * *"
- cron: "0 12 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/debian-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Debian 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 12 * * *"
- cron: "0 11 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/etcd-v2-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Etcd v2 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 11 * * *"
- cron: "0 10 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/etcd-v3-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Etcd v3 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 10 * * *"
- cron: "0 9 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fedora-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Fedora 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 9 * * *"
- cron: "0 8 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mariadb-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "MariaDB 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 8 * * *"
- cron: "0 7 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mysql-server-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "MySQL Server 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 7 * * *"
- cron: "0 6 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/opensuse-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Opensuse 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *"
- cron: "0 5 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/percona-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Percona 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 5 * * *"
- cron: "0 4 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/photon-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Photon 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 4 * * *"
- cron: "0 3 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Python 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 3 * * *"
- cron: "0 2 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rabbitmq-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "RabbitMQ 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 2 * * *"
- cron: "0 1 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/redis-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Redis 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 1 * * *"
- cron: "0 0 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rockylinux-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "RockyLinux 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
- cron: "0 23 * * *"
push:
branches:
- '*'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tinyproxy-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Tinyproxy 🐳 Mirror"
on:
workflow_dispatch:
schedule:
- cron: "0 23 * * *"
- cron: "0 22 * * *"
push:
branches:
- '*'
Expand Down
Loading

0 comments on commit b69be76

Please sign in to comment.