126 lines
5.1 KiB
YAML
126 lines
5.1 KiB
YAML
name: Refresh
|
|
on:
|
|
schedule:
|
|
- cron: '0 0 * * 0'
|
|
push:
|
|
branches:
|
|
- 'automation'
|
|
- 'automation-test'
|
|
|
|
jobs:
|
|
update:
|
|
runs-on: ubuntu-latest
|
|
name: "Update Mirror"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
name: "Checkout"
|
|
- name: "Configure"
|
|
shell: bash
|
|
run: |
|
|
git config --global user.name 'GitHub Actions'
|
|
git config --global user.email 'xaymar@users.noreply.github.com'
|
|
git config pull.ff only
|
|
git config pull.rebase true
|
|
- name: "Remotes"
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
shell: bash
|
|
run: |
|
|
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
|
|
git remote add -f --tags remote https://git.ffmpeg.org/ffmpeg.git
|
|
git fetch --all
|
|
- name: "Synchronize with Remote and trigger Builds"
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
shell: bash
|
|
run: |
|
|
declare -a BRANCHES
|
|
BRANCHES[${#BRANCHES[@]}]="master"
|
|
BRANCHES[${#BRANCHES[@]}]="release/4.4"
|
|
BRANCHES[${#BRANCHES[@]}]="release/4.3"
|
|
BRANCHES[${#BRANCHES[@]}]="release/4.2"
|
|
BRANCHES[${#BRANCHES[@]}]="release/4.1"
|
|
BRANCHES[${#BRANCHES[@]}]="release/4.0"
|
|
BRANCHES[${#BRANCHES[@]}]="release/3.4"
|
|
BRANCHES[${#BRANCHES[@]}]="release/3.3"
|
|
BRANCHES[${#BRANCHES[@]}]="release/3.2"
|
|
BRANCHES[${#BRANCHES[@]}]="release/3.1"
|
|
BRANCHES[${#BRANCHES[@]}]="release/3.0"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.8"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.7"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.6"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.5"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.4"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.3"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.2"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.1"
|
|
BRANCHES[${#BRANCHES[@]}]="release/2.0"
|
|
BRANCHES[${#BRANCHES[@]}]="release/1.2"
|
|
BRANCHES[${#BRANCHES[@]}]="release/1.1"
|
|
BRANCHES[${#BRANCHES[@]}]="release/1.0"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.11"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.10"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.9"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.8"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.7"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.6"
|
|
BRANCHES[${#BRANCHES[@]}]="release/0.5"
|
|
BRANCHES[${#BRANCHES[@]}]="oldabi"
|
|
|
|
echo "Testing branches for differences..."
|
|
for d in ${BRANCHES[@]}; do
|
|
BRANCH_REQUIRES_UPDATE=false
|
|
if ! git branch -a | grep origin/${d} > /dev/null; then
|
|
echo " '${d}' is missing, creating..."
|
|
BRANCH_REQUIRES_UPDATE=true
|
|
elif ! git diff -s --exit-code origin/${d} remote/${d} > /dev/null; then
|
|
echo " '${d}' is out of date, updating..."
|
|
BRANCH_REQUIRES_UPDATE=true
|
|
fi
|
|
|
|
# Always check out the remote branch.
|
|
git checkout -b "${d}" "remote/${d}" > /dev/null
|
|
|
|
if ${BRANCH_REQUIRES_UPDATE}; then
|
|
git push --follow-tags --set-upstream origin ${d}
|
|
|
|
# Trigger build without custom patches
|
|
curl -s --show-error \
|
|
-X POST \
|
|
-H "Authorization: token ${{ secrets.WORKFLOW_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-d "{\"ref\":\"${{ github.ref }}\",\"inputs\":{\"ref\":\"${d}\"}}" \
|
|
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/build.yml/dispatches"
|
|
|
|
# Trigger build with custom patches
|
|
curl -s --show-error \
|
|
-X POST \
|
|
-H "Authorization: token ${{ secrets.WORKFLOW_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-d "{\"ref\":\"${{ github.ref }}\",\"inputs\":{\"ref\":\"${d}\",\"apply_patches\":\"true\"}}" \
|
|
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/build.yml/dispatches"
|
|
fi
|
|
done
|
|
- name: "Only trigger build on manual push"
|
|
if: ${{ github.event_name == 'push' }}
|
|
shell: bash
|
|
run: |
|
|
declare -a BRANCHES
|
|
BRANCHES[${#BRANCHES[@]}]="master"
|
|
|
|
for d in ${BRANCHES[@]}; do
|
|
# Trigger build without custom patches
|
|
curl -s --show-error \
|
|
-X POST \
|
|
-H "Authorization: token ${{ secrets.WORKFLOW_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-d "{\"ref\":\"${{ github.ref }}\",\"inputs\":{\"ref\":\"${d}\"}}" \
|
|
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/build.yml/dispatches"
|
|
|
|
# Trigger build with custom patches
|
|
curl -s --show-error \
|
|
-X POST \
|
|
-H "Authorization: token ${{ secrets.WORKFLOW_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-d "{\"ref\":\"${{ github.ref }}\",\"inputs\":{\"ref\":\"${d}\",\"apply_patches\":\"true\"}}" \
|
|
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/build.yml/dispatches"
|
|
done
|