forked from continuwuation/continuwuity
68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
name: Mirror Container Images
|
|
|
|
on:
|
|
schedule:
|
|
# Run every 2 hours
|
|
- cron: "0 */2 * * *"
|
|
workflow_dispatch:
|
|
inputs:
|
|
dry_run:
|
|
description: 'Dry run (check only, no actual mirroring)'
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
# Re-run when config changes
|
|
- '.forgejo/regsync/regsync.yml'
|
|
- '.forgejo/workflows/mirror-images.yml'
|
|
concurrency:
|
|
group: "mirror-images"
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
mirror-images:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUILTIN_REGISTRY_USER: ${{ vars.BUILTIN_REGISTRY_USER }}
|
|
BUILTIN_REGISTRY_PASSWORD: ${{ secrets.BUILTIN_REGISTRY_PASSWORD }}
|
|
GITLAB_USERNAME: ${{ vars.GITLAB_USERNAME }}
|
|
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
|
|
N7574_GIT_USERNAME: ${{ vars.N7574_GIT_USERNAME }}
|
|
N7574_GIT_TOKEN: ${{ secrets.N7574_GIT_TOKEN }}
|
|
GH_PACKAGES_USER: ${{ vars.GH_PACKAGES_USER }}
|
|
GH_PACKAGES_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }}
|
|
DOCKER_MIRROR_USER: ${{ vars.DOCKER_MIRROR_USER }}
|
|
DOCKER_MIRROR_TOKEN: ${{ secrets.DOCKER_MIRROR_TOKEN }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
persist-credentials: false
|
|
|
|
# - uses: https://github.com/actions/create-github-app-token@v2
|
|
# id: app-token
|
|
# with:
|
|
# app-id: ${{ vars.GH_APP_ID }}
|
|
# private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
|
# github-api-url: https://api.github.com
|
|
# owner: continuwuity
|
|
# repositories: continuwuity
|
|
|
|
- name: Install regctl
|
|
uses: https://forgejo.ellis.link/continuwuation/regclient-actions/regctl-installer@main
|
|
with:
|
|
binary: regsync
|
|
|
|
- name: Check what images need mirroring
|
|
run: |
|
|
echo "Checking images that need mirroring..."
|
|
regsync check -c .forgejo/regsync/regsync.yml -v info
|
|
|
|
- name: Mirror images
|
|
if: ${{ !inputs.dry_run }}
|
|
run: |
|
|
echo "Starting image mirroring..."
|
|
regsync once -c .forgejo/regsync/regsync.yml -v info
|