73 lines
2.5 KiB
YAML
73 lines
2.5 KiB
YAML
name: Git release workflow
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '0 15 * * *'
|
|
jobs:
|
|
update:
|
|
name: update
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-22.04, ubuntu-20.04, ubuntu-18.04]
|
|
steps:
|
|
- name: Update lists
|
|
run: |
|
|
. /etc/os-release
|
|
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$VERSION_CODENAME"-libs
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: lists
|
|
path: |
|
|
/tmp/*-libs
|
|
|
|
sync:
|
|
name: sync
|
|
needs: update
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: develop
|
|
fetch-depth: 0
|
|
- name: Download lists
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: lists
|
|
path: src/lists
|
|
- name: Add brew to PATH
|
|
run: echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
|
|
- name: Update darwin extensions list
|
|
run: |
|
|
brew tap shivammathur/extensions
|
|
find "$(brew --repository shivammathur/extensions)"/.github/deps -mindepth 1 -type d -name "*" -exec basename {} \; | sort > src/lists/darwin-extensions
|
|
- name: Update tags and branches
|
|
run: |
|
|
push_ref() {
|
|
ref=$1
|
|
git push -f https://${{ github.repository_owner }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git "$ref" || true
|
|
}
|
|
git config --local user.email "$bot_user_id+github-actions[bot]@users.noreply.github.com"
|
|
git config --local user.name "github-actions[bot]"
|
|
if [ "$(git status --porcelain=v1 2>/dev/null | wc -l)" != "0" ]; then
|
|
git add .
|
|
git commit -m "Updating lists"
|
|
fi
|
|
push_ref develop
|
|
semver=$(git tag --sort=-refname | awk 'match($0, /^[0-9]+\.[0-9]+\.[0-9]+$/)' | head -n 1)
|
|
rolling=$(git tag --sort=-refname | awk 'match($0, /^v[0-9]/)' | head -n 1)
|
|
for branch in master releases/$rolling; do
|
|
git checkout $branch
|
|
if [ "$(git rev-parse "$branch")" != "$(git rev-parse develop)" ]; then
|
|
git merge --allow-unrelated-histories develop || true
|
|
fi
|
|
push_ref "$branch"
|
|
done
|
|
for tag in $semver $rolling; do
|
|
git tag -fa "$tag" -m "Update %1 tag"
|
|
push_ref "$tag"
|
|
done
|