# Pillar 1 of the addon-qualification proposal — runs on every push to any # branch and on every PR. Pulls the latest qualify-addon.py from the v3 # monorepo and runs it against every addon directory in this repo. # # admit-with-warning posture: the workflow does NOT fail the build when an # addon fails the lint. The result is published as a check annotation so # operators can see it on the catalog card. (See docs/PROPOSAL_ADDON_QUALIFICATION.md # in odoo-tower/odooskyv3 for the rationale.) name: addon-qualify on: push: pull_request: workflow_dispatch: jobs: qualify: runs-on: ubuntu-latest steps: - name: Checkout addons repo uses: actions/checkout@v4 - name: Fetch qualify-addon.py from v3 monorepo run: | curl -fsSL 'https://git.odoosky.org/odoo-tower/odooskyv3/raw/branch/main/scripts/qualify-addon.py' -o /tmp/qualify-addon.py chmod +x /tmp/qualify-addon.py head -1 /tmp/qualify-addon.py - name: Run qualifier on every addon run: | set +e ADDONS=() for d in addons/*/; do [ -f "$d/__manifest__.py" ] && ADDONS+=("${d%/}") done if [ ${#ADDONS[@]} -eq 0 ]; then echo "No addons under addons/ — nothing to qualify" exit 0 fi echo "Qualifying ${#ADDONS[@]} addons..." python3 /tmp/qualify-addon.py "${ADDONS[@]}" QUAL_RC=$? echo echo "::notice ::qualifier exit code $QUAL_RC (admit-with-warning — not failing build)" # Always succeed; the report is the artifact. exit 0