Add workflows
This commit is contained in:
parent
0750a83afa
commit
8effa5a0fa
|
@ -0,0 +1,27 @@
|
||||||
|
name: "Sync Workflows"
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- "mirror.txt"
|
||||||
|
jobs:
|
||||||
|
sync-workflows:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Generate
|
||||||
|
run: |
|
||||||
|
git rm -f .github/workflows/mirror-*.yml || true
|
||||||
|
./hack/generate-workflow.sh
|
||||||
|
- name: Sync
|
||||||
|
env:
|
||||||
|
GH_TOKEN: "${{ secrets.GH_TOKEN }}" # Permission to operate Workflows is required
|
||||||
|
run: |
|
||||||
|
git add .github/workflows/mirror-*.yml && git commit -m "Generate Workflow YAML" && {
|
||||||
|
git config --global user.name "bot"
|
||||||
|
SOURCE=$(git remote get-url origin | sed -E 's#git@(.+):(.+)#https://\1/\2#g' | sed "s#https://github.com#https://bot:${GH_TOKEN}@github.com#g")
|
||||||
|
git remote add upstream "${SOURCE}"
|
||||||
|
git push upstream main
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
cat ./mirror.txt | while read line; do
|
||||||
|
line="${line// /}"
|
||||||
|
if [[ "${line}" == "#"* ]] || [[ "${line}" == "" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
host="${line%%/*}"
|
||||||
|
image="${line#*/}"
|
||||||
|
workflow=".github/workflows/mirror-${host//./-}-${image//\//-}.yml"
|
||||||
|
|
||||||
|
cat <<EOF >"${workflow}"
|
||||||
|
name: "Sync ${host}/${image}"
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync-image:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Sync
|
||||||
|
env:
|
||||||
|
CREDS: "\${{ secrets.CREDS }}"
|
||||||
|
MIRROR: "\${{ secrets.MIRROR }}"
|
||||||
|
run: |
|
||||||
|
docker run --rm -it ananace/skopeo \\
|
||||||
|
sync --src docker --dest docker --dest-tls-verify=false --dest-creds "\${CREDS}" -f oci \\
|
||||||
|
"${host}/${image}" "\${MIRROR}/${image}"
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
done
|
Loading…
Reference in New Issue