indecis-it / data

Italian electoral programs data. Open data source for indecis.it
Creative Commons Attribution 4.0 International
6 stars 0 forks source link

[action] Riflettere update di data sul sito #6

Closed angelogulina closed 2 years ago

angelogulina commented 2 years ago

indecis.it è un sito che genera pagine statiche. Ciò significa che i dati presenti non sono dinamici, vengono raccolti in fase di deploy per creare le pagine HTML.

Si pone il problema di come fare in modo che update che avvengono su questa repo possano far partire il job di vercel.it (che è poi il tool che si occupa del deploy effettivo). Al momento il job avviene ad ogni push su una repo mirror (privata, scusate).

angelogulina commented 2 years ago

@dennisangemi questo me lo assegno e cerco di investigare appena possibile. Molto probabilmente si può semplicemente fare un push vuoto sulla repo mirror per far partire il deployment.

dennisangemi commented 2 years ago

Grazie @angelogulina, io inserirò un'action (di frictionless) che farà un sanity check dei dati ogni volta che questi saranno aggiornati. Magari si potrebbe pensare di far partire il push vuoto verso la mirror quando l'action di frictionless finisce la validazione

Il Ven 19 Ago 2022, 11:15 Angelo Gulina @.***> ha scritto:

@dennisangemi https://github.com/dennisangemi questo me lo assegno e cerco di investigare appena possibile. Molto probabilmente si può semplicemente fare un push vuoto sulla repo mirror per far partire il deployment.

— Reply to this email directly, view it on GitHub https://github.com/indecis-it/data/issues/6#issuecomment-1220445450, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASLTOBXHV64BGDGQSQFSMWDVZ5GCRANCNFSM57AA3OAA . You are receiving this because you were mentioned.Message ID: @.***>

dennisangemi commented 2 years ago

Ciao @angelogulina solo per aggiornarti.

L'action che valida i dati è questa. Come ti dicevo parte ogni volta che i dati vengono aggiornati grazie a questa condizione

  workflow_run:
    workflows: ["Update data"]
    types:
      - completed
dennisangemi commented 2 years ago

@angelogulina FYI ho provato a pushare un commit vuoto sul repo di indecis.it https://github.com/indecis-it/indecis.it/commit/6699e4a4ad70bfdfaeb463cee7aae7605887bc91 ma l'action mirro purtroppo non è stata completata con successo vd. https://github.com/indecis-it/indecis.it/runs/7925880287?check_suite_focus=true

angelogulina commented 2 years ago

@dennisangemi, grazie per aver provato.

tl;dr: lasciami pensare a come fare.

la action per il sito mirror difatti usa git per fare push. Un commit vuoto restituisce nulla da pushare. Potremmo usare push --force (facevo prima). Ma poi si generano altri tipi di errore. Trovo un modo.

dennisangemi commented 2 years ago

la action per il sito mirror difatti usa git per fare push. Un commit vuoto restituisce nulla da pushare.

@angelogulina e se aggiungessimo flag --allow-empty qui?

https://github.com/indecis-it/indecis.it/blob/6699e4a4ad70bfdfaeb463cee7aae7605887bc91/.github/workflows/mirror.yaml#L21

ho aperto una PR

dennisangemi commented 2 years ago

Push vuoto abilitato e funzionante (vedi https://github.com/indecis-it/indecis.it/pull/22#issuecomment-1221376963)

Adesso rimane da

È possibile fare na cosa del genere? @angelogulina

angelogulina commented 2 years ago

@dennisangemi penso di sì.

(O mi stai chiedendo di darci un'occhiata? 😂 )

dennisangemi commented 2 years ago

(O mi stai chiedendo di darci un'occhiata? 😂 )

@angelogulina ehm, ci daresti un'occhiata? (Solo perché lavori a GitLab e conosci Git meglio di me 😇)

dennisangemi commented 2 years ago

In attesa di trovare una soluzione ho creato action su repo indecis.it per fare un commit vuoto e pusharlo in modo tale da aggiornare i dati. https://github.com/indecis-it/indecis.it/commit/b55a73f35279328286b6886afa873ab0007e65f9

Io immagino che si potrebbe realizzare una cosa di questo tipo: far partire push.yaml (repo indecis.it) alla fine dell'action che valida i dati (repo data) frictionless.yaml (se la validazione viene passata)

dennisangemi commented 2 years ago

Questo dovrebbe fare al caso nostro https://github.com/mvasigh/dispatch-action

Immagino che sia necessario collegare:

Lo lascio qui e chi dei due riesce a dare un'occhiata prima aggiorna l'altro ;)

dennisangemi commented 2 years ago

Ciao @angelogulina, ho provato a settare tutto (vd 2 commit che precedono questo commento) ma non so COME salvare nel repo il mio personal access token in modo tale che sia accessibile via ${{ secrets.PERSONAL_ACCESS_TOKEN }}.

Aggiornamenti: sono riuscito a renderlo accessibile seguendo questa documentazione https://docs.github.com/en/actions/security-guides/encrypted-secrets

dennisangemi commented 2 years ago

Immagino che sia necessario collegare:

  • indecis-it/data/blob/main/.github/workflows/main.yml
  • indecis-it/indecis.it/blob/main/.github/workflows/mirror.yaml

Ci sono riuscito!

Qui l'action che parte dal repo data https://github.com/indecis-it/data/actions/runs/2948306707 Qui l'action che arriva nel repo indecis.it https://github.com/indecis-it/indecis.it/actions/runs/2948348579

Attualmente il sito non mostra i dati nuovi perchè sarebbe necessario rinominare un file a seguito della conferma di Angelo così come da #16

dennisangemi commented 2 years ago

Mi pare funzioni. Chiudo, al limite riapriamo