Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com> (cherry picked from commitd6d501ad99) (cherry picked from commit4d824b71cc) (cherry picked from commit0d3c83fca1) (cherry picked from commit5a73d61002) (cherry picked from commit34687fb5e9) (cherry picked from commit4a99805fde) (cherry picked from commit331f08255c) (cherry picked from commit3dea69443d) (cherry picked from commitd97e434fce) (cherry picked from commit9e41ee25d9) (cherry picked from commit8f20b3433e)
46 lines
1.5 KiB
YAML
46 lines
1.5 KiB
YAML
name: Synchronize Project Metadata
|
|
on:
|
|
push:
|
|
branches-ignore:
|
|
- "devel"
|
|
paths:
|
|
- "*" # Will trigger on new directories and changes to files in root of repository
|
|
- ".gitea/workflows/sync_meta.yaml"
|
|
- ".obs/common.py"
|
|
|
|
jobs:
|
|
sync-prj-meta:
|
|
runs-on: tumbleweed
|
|
steps:
|
|
- name: Setup OSC
|
|
run: |
|
|
zypper in -y python3-jinja2
|
|
mkdir -p ~/.config/osc
|
|
cat >~/.config/osc/oscrc <<'EOF'
|
|
[general]
|
|
apiurl = https://api.opensuse.org
|
|
|
|
[https://api.opensuse.org]
|
|
user=${{ vars.OBS_USERNAME }}
|
|
pass=${{ secrets.OBS_PASSWORD }}
|
|
EOF
|
|
# Waiting on PR to get merged for support in upstream action/checkout action
|
|
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
|
|
name: Checkout repository
|
|
with:
|
|
object-format: 'sha256'
|
|
- name: "Update or create OBS Project"
|
|
run: |
|
|
PROJECT="$(grep PROJECT .obs/common.py | sed 's/PROJECT = "\(.*\)"/\1/')"
|
|
set -o pipefail
|
|
if meta="$(osc meta prj "${PROJECT}" 2>/dev/null | sha256sum)"; then
|
|
new_meta="$(python3 .obs/render_meta.py)"
|
|
if [ "${meta}" != "$(echo "${new_meta}" | sha256sum)" ]; then
|
|
echo "${new_meta}" | osc meta prj "${PROJECT}" -F -
|
|
fi
|
|
python3 .obs/sync_packages.py
|
|
else
|
|
# Create the projects
|
|
bash .obs/create_projects.sh
|
|
fi
|