ci: l'icona della pagina wordpress.org si aggiorna da sola, senza spacciarla per un rilascio
All checks were successful
Immagini della pagina wordpress.org / immagini (push) Successful in 21s

This commit is contained in:
Lorenzo Iovino 2026-09-09 11:59:30 +02:00
parent 633a65faed
commit 4c643ef5ac
3 changed files with 79 additions and 0 deletions

View file

@ -0,0 +1,79 @@
name: Immagini della pagina wordpress.org
# Le immagini della pagina pubblica (icona, banner, screenshot) NON stanno
# dentro al plugin: stanno in `assets/` del repository SVN, che wordpress.org
# tratta a parte e senza versioni. Per questo hanno un giro loro: cambiare
# l'icona non deve costringere a inventare un rilascio.
#
# Cosa mettere in .wordpress-org/ (i nomi sono obbligatori):
# icon-256x256.png icona nella directory e nel pannello di WordPress
# icon-128x128.png stessa icona per gli schermi normali
# banner-1544x500.png testata della pagina, retina
# banner-772x250.png testata della pagina, schermi normali
# screenshot-1.png ... numerate, con le didascalie in `== Screenshots ==`
# del readme.txt, nello stesso ordine
#
# Secrets: gli stessi del rilascio (WPORG_SVN_PASSWORD).
on:
push:
branches: [main]
paths: ['.wordpress-org/**']
workflow_dispatch:
env:
SVN_URL: https://plugins.svn.wordpress.org/piazza-in-festa
jobs:
immagini:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Strumenti (svn, rsync)
run: |
set -e
apt-get update -qq
apt-get install -y --no-install-recommends subversion rsync ca-certificates
- name: Copia di lavoro SVN (solo assets)
run: |
set -e
svn co --depth immediates "$SVN_URL" svn
svn up --set-depth infinity svn/assets
- name: Allinea le immagini
run: |
set -e
if [ -z "$(ls -A .wordpress-org 2>/dev/null)" ]; then
echo "Non c'e' niente in .wordpress-org/, non tocco la pagina." >&2
exit 1
fi
rsync -a --delete --exclude '.svn' .wordpress-org/ svn/assets/
cd svn
svn status | sed -n 's/^![[:space:]]*//p' | while IFS= read -r morto; do
svn rm --force "$morto"
done
svn add --force assets
svn status
- name: Pubblica
env:
SVN_USER: ${{ vars.WPORG_SVN_USERNAME || 'thisloke' }}
SVN_PASS: ${{ secrets.WPORG_SVN_PASSWORD }}
run: |
set -e
cd svn
# Senza modifiche non si commita: un `svn ci` a vuoto non fa danni ma
# sporca la cronologia della directory con revisioni inutili.
if [ -z "$(svn status)" ]; then
echo "Le immagini su wordpress.org sono gia' queste, niente da fare."
exit 0
fi
svn ci \
-m "Aggiorna le immagini della pagina" \
--username "$SVN_USER" \
--password "$SVN_PASS" \
--non-interactive --no-auth-cache --trust-server-cert

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB