Skip to content

Enhancement upgrade pipeline ci/cd workflow#91

Merged
Magnetarman merged 16 commits into
Devfrom
ENHANCEMENT-Upgrade-Pipeline-CI/CD-Workflow
May 14, 2026
Merged

Enhancement upgrade pipeline ci/cd workflow#91
Magnetarman merged 16 commits into
Devfrom
ENHANCEMENT-Upgrade-Pipeline-CI/CD-Workflow

Conversation

@Magnetarman
Copy link
Copy Markdown
Owner

🚀 Pull Request Info

Tipo di Modifica Dettaglio
Branch Destinazione DEV (Obbligatorio)
Issue Collegata Fixes #
Ambito Pipeline CI/CD

📝 Descrizione delle Modifiche

Qualità pipeline CI/CD:

  • Skip automatico linting/test/build (CI_UpdateWinToolkit_Dev.yml): aggiunto il job detect_changes che controlla i file modificati; se il commit tocca solo workflow .yml o documentazione, l'intera pipeline di verifica viene saltata.
  • Estrazione PowerShell inline (Create_Release.yml → New-ReleaseNotes.ps1): le ~180 righe di PowerShell embedded nel job release sono state estratte in uno script dedicato, testabile localmente e riutilizzabile.
  • Pin SHA GitHub Actions (tutti i workflow): tutte le action di terze parti (actions/checkout, actions/github-script, actions/upload-artifact, stefanzweifel/git-auto-commit-action) pinnate al commit SHA completo per eliminare il rischio di supply chain via tag mutabili.
    Gestione branch di release esistente (Release_Wintoolkit.yml): aggiunto un controllo git ls-remote che fallisce esplicitamente prima di creare il branch, anziché lasciare fallire il git checkout -b con un errore non gestito.

Governance e documentazione:

  • dependabot.yml: aggiornamento automatico settimanale delle GitHub Actions.
  • CODEOWNERS: revisore obbligatorio @Magnetarman su tutti i path del repository.
  • Commento FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: aggiunto in tutti i workflow per rendere evidente lo scopo della variabile ai futuri contributor.

Testing:

  • Test unitari Pester (Unit/WinCleaner, Unit/VideoDriver, Unit/GamingToolkit): verifica firma, parametri e invarianti di sorgente per i 3 moduli tool principali.
  • Test di integrazione (Integration/Build.Tests.ps1): verifica sintassi di tutti i sorgenti, coerenza tra tool e template, e (tag Slow) compilazione end-to-end reale.
  • Copertura minima 70% (CI_UpdateWinToolkit_Dev.yml): configurata in Pester con target sul codice del template e dei moduli tool; i test Slow esclusi dal run CI rapido.
  • stale.yml: chiusura automatica di issue e PR inattive da 60+ giorni.

@github-actions
Copy link
Copy Markdown
Contributor

👀 Attenzione — Revisione Manuale Richiesta

Ciao @Magnetarman,
grazie per il tuo contributo! Questa PR è stata accettata e può procedere normalmente nel flusso di revisione.

Tuttavia, il sistema di controllo automatico ha rilevato che sono stati modificati uno o più file sensibili di WinToolkit, che influenzano l'interfaccia utente, il template principale o le risorse statiche del progetto:

File sensibili modificati

  • .github/CODEOWNERS
  • .github/dependabot.yml
  • .github/scripts/New-ReleaseNotes.ps1
  • .github/tests/Integration/Build.Tests.ps1
  • .github/tests/Unit/GamingToolkit.Tests.ps1
  • .github/tests/Unit/VideoDriver.Tests.ps1
  • .github/tests/Unit/WinCleaner.Tests.ps1
  • .github/workflows/CI_UpdateWinToolkit_Dev.yml
  • .github/workflows/Create_Release.yml
  • .github/workflows/Release_Wintoolkit.yml
  • .github/workflows/stale.yml

Perché questo avviso?

Questi file non sono bloccati per i collaboratori, ma richiedono una verifica supplementare da parte del maintainer prima del merge, poiché modifiche non previste potrebbero:

  • Alterare il comportamento dell'interfaccia (WinToolkit_GUI.ps1, start.ps1)
  • Impattare la compilazione o le funzioni core del framework (WinToolkit-template.ps1)
  • Introdurre risorse non verificate nella distribuzione (asset/)

Prossimi passi

Non è richiesta alcuna azione da parte tua. Il maintainer esaminerà le modifiche con maggiore attenzione prima di procedere al merge.


Notifica automatica del sistema CI/CD di WinToolkit — PR #91.

@Magnetarman Magnetarman merged commit 7cae299 into Dev May 14, 2026
4 of 5 checks passed
@Magnetarman Magnetarman deleted the ENHANCEMENT-Upgrade-Pipeline-CI/CD-Workflow branch May 14, 2026 01:02
@Magnetarman Magnetarman mentioned this pull request May 30, 2026
86 tasks
Magnetarman added a commit that referenced this pull request May 30, 2026
### Aggiunte

- **start.ps1**
- [x] Aggiunto countdown di 5 secondi prima della chiusura dello script.
Adesso alla fine dell'installazione lo script si chiude automaticamente
se ogni operazione è stata eseguita con successo.
- **Profilo PowerShell**
  - [x] Aggiunta funzione caricamento WinToolkit-GUI.
- **WinCleaner**
- [x] Aggiunta funzione di debloat del modello AI Locale di Google che
si installa all'insaputa dell'utente.
[[Video]](https://www.youtube.com/watch?v=vWNfSGPivHQ)

### Correzioni

- **WinToolkit-template.ps1**
- [x] Aggiunta funzione pulizia log eventi.
[[#104](#104)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix testo spinner in `Invoke-WithSpinner`.
[[#112](#112)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix assert funzioni admin.
[[#105](#105)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix pulizia `WinCleaner`.
[[#103](#103)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix errore avvio UniGetUI.
[[#102](#102)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix avvisi sicurezza durante i test.
[[#101](#101)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix regex case-insensitive nel compiler.
[[#90](#90)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix etichettatura toolkit.
[[#89](#89)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix rollback `compiler.ps1`.
[[#88](#88)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix perdita privacy log.
[[#87](#87)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Refactor completo `Office Toolkit`.
[[#86](#86)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Fix test falliti WinToolkit.
[[#76](#76)
[@Magnetarman]](https://github.com/Magnetarman)

- **start.ps1**
  - [x] Rimossa variabile `$rebootNeeded`.
- [x] Spostati CLSID Windows Terminal e lista processi interferenti
Winget in `$script:AppConfig`.
  - [x] Rimosso stile Progress da `$Global:MsgStyle`.
- [x] Eliminata funzione `Install-NuGetIfRequired` e il suo pre-check
ridondante in `Install-WingetPackage`.
- [x] Rimossa una chiamata ridondante a `Update-EnvironmentPath` prima
del fallback MSIX.
- [x] Rimosso if con warning non bloccante in `Test-VCRedistInstalled`.
  - [x] Corretta numerazione passi in `Repair-WingetDatabase`.
- [x] Sostituito valore non valido Progress con Info nel parametro -Type
di Write-StyledMessage (risolve errore ValidateSet runtime).
- [x] Install-GitPackage - Sostituite 3 occorrenze di aggiornamento PATH
inline con la funzione `Update-EnvironmentPath` esistente.
- [x] Invoke-WinToolkitSetup - Rimossa duplicazione codice rilevamento
percorso pwsh.exe (ora rilevato una sola volta).
  - Estrazione funzioni annidate:
    - [x] `Get-WingetDownloadUrl` estratta da `Install-WingetCore`.
    - [x] `Install-NerdFontsLocal` estratta da `Install-PspEnvironment`.
    - [x] `Get-ProfileDirLocal` estratta da `Install-PspEnvironment`.
- [x] Aggiunta lista UpdateServices in $script:AppConfig e aggiornate
Invoke-StopUpdateServices / Invoke-StartUpdateServices.
- [x] Spostato $Global:MsgStyles all'interno di AppConfig eliminando
scope globale non necessario.
- [x] Corretto pattern ProgressPreference in Install-WingetPackage (ora
salva e ripristina valore originale).
  - [x] Uniformato operatore negazione da ! a -not per coerenza.
- [x] Corretta numerazione passi mancante (#6) in Repair-WingetDatabase.
- [x] Aggiunto Layout.Width in configurazione, rimossi magic number 65
hardcoded.
- [x] Rimossa inizializzazione superflua `$downloadUrl = $null` a riga
1127.
  - [x] Aggiunto blocco .SYNOPSIS a tutte le 20 funzioni presenti.
  - [x] Riorganizzato il codice in modo più pulito e lineare.
- [x] Rimuovi tutti i caratteri ANSI/colori prima di salvare su file.
[[Thanks To @ennio Costanzi]]()
- [x] Corretti errori di parsing funzione non correttamente
inizializzata. [[Thanks To @ennio Costanzi]]()

- **WinToolkit-template.ps1**
- [x] Sostituita la chiusura dei processi duplicata nel ripristino di
Winget integrando la funzione `Stop-ToolkitProcesses`.
- [x] Consolidata e de-duplicata registrazione `AppxManifest.xml`
tramite funzione interna dedicata.
- [x] Aggiunto caching a `Get-SystemInfo` azzerando latenze CIM durante
il ricarico del menu principale.
- [x] Inserita funzione `Initialize-ToolkitPaths` centralizzata per i
folder log/temp, chiamata fuori ciclo prima della UI.
- [x] Ottimizzato wrapper custom `Read-Host` tramite interruzione
bloccante `ReadKey()` cancellando overhead della CPU nel polling loop.
- [x] Uniformati link e blocchi di configurazioni `AppConfig` centrali.
- [x] Gestione Servizi: Aggiunte le funzioni Invoke-StopUpdateServices e
Invoke-StartUpdateServices per sospendere temporaneamente wuauserv,
bits, cryptsvc e dosvc.
- [x] Integrazione: Il sistema ora arresta i servizi subito dopo i
controlli preliminari e li riavvia automaticamente in ogni scenario di
uscita (completamento, riavvio in PowerShell 7/Terminal o errore
critico).
- [x] Feedback Utente: Inseriti messaggi di stato per informare
correttamente l'utente durante l'arresto e il riavvio dei servizi.
- [x] Introdotta funzione `Test-WindowsUpdateStatus` per rilevare gli
aggiornamenti di Windows in sospeso e l'attività del programma di
installazione.
- [x] Rimuovi tutti i caratteri ANSI/colori prima di salvare su file.
[[Thanks To @ennio Costanzi]]()
  - [x] Corretti bug in `Get-UserConfirmation` e `Read-ValidatedChoice`.
- [x] Aggiornato menu principale di WinToolkit per sfruttare
`Read-ValidatedChoice`.
- [x] Adeguati i vari script per utilizzare la nuova funzione
Invoke-WithSpinner globale, eliminando le vecchie funzioni
Write-Spinner/Stop-Spinner e Write-Wait.
- [x] Adeguati i commenti interni in modo che siano coerenti con le
modifiche effettuate.
- [x] Aggiornata funzione di Log e resa globale in modo da limitare
chiamate multiple durante l'avvio di ogni singola funzione.

- **WinRepairToolkit**
- [x] Improve AppX registration and chkdsk handling. [[Thanks To @ennio
Costanzi]]()
- [x] Controllo iniziale stato sistema: Aggiunta funzione
`Test-PendingOperations` che verifica chiavi di registro per reboot
pendente e avvisa l'utente prima di iniziare le riparazioni.
- [x] Pulizia stato DISM: Esecuzione automatica di DISM /CancelCommands
prima di ogni operazione /StartComponentCleanup per annullare operazioni
pendenti.
- [x] Gestione specifica errore: 0x800f0806 viene riconosciuto come non
critico, viene mostrato un avviso informativo e non viene conteggiato
come errore.
- [x] Supporto codice exit 3010: DISM /ResetBase che ritorna 3010
(reboot richiesto) viene considerato successo.
- [x] Esclusione errore dal conteggio: 0x800f0806 viene saltato nella
logica di rilevazione errori generale.
- [x] Rimossa funzione registrazioni AppX in quanto il Fix temporaneo
non risulta più necessario con gli ultimi cumulativi di Windows 11.

- **compiler.ps1**
- [x] Corretti errori di parsing funzione non correttamente
inizializzata.

- **README.md**
- [x] Aggiunto banner conto totale dei Download [Diventera realistico
quando la versione GUI verrà ultimata].

### Modifiche

- **WinToolkit-template.ps1**
- [x] Aggiunta funzione `Get-UserConfirmation` (sostituisce
`Read-YesNoPrompt`).
- [x] Aggiunta funzione `Read-ValidatedChoice` (gestisce input multipli
e validazione avanzata).
- [x] Rimosse funzioni deprecate come `Get-UserConfirmation`,
aggiornamento dei vari script al nuovo paradigma completo.

- **VideoDriverInstall.ps1**
- [x] Upgrade script installazione driver video.
[[#109](#109)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Refactor `Video Driver Toolkit`.
[[#108](#108)
[@Magnetarman]](https://github.com/Magnetarman)

- **Pipeline CI/CD**
- [x] Upgrade workflow pipeline CI/CD.
[[#91](#91)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Pipeline CI/CD v 3.1.0.
[[#77](#77)
[@Magnetarman]](https://github.com/Magnetarman)

- **WinToolkit-template.ps1**
- [x] Refactor del template principale.
[[#81](#81)
[@Magnetarman]](https://github.com/Magnetarman)

- **Office Toolkit**
- [x] Upgrade debloat dopo installazione.
[[#80](#80)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Office uninstall SaRA con comando Get Help.
[[#79](#79)
[@Magnetarman]](https://github.com/Magnetarman)
- [x] Rework `Office Toolkit`.
[[#78](#78)
[@Magnetarman]](https://github.com/Magnetarman)

- **Profilo PowerShell**
- [x] Aggiunta breakline in istruzione if.
[[#99](#99)
[@pomodori92]](https://github.com/pomodori92)
- [x] Status supporto versioni Windows nel README.
[[#96](#96)
[@pomodori92]](https://github.com/pomodori92)
- [x] Rimosse variabile inutilizzata da `WinToolkit-GUI.ps1`.
[[#74](#74)
[@pomodori92]](https://github.com/pomodori92)
- [x] Testi help per Safe, Warning e Alert nel profilo PowerShell.
[[#73](#73)
[@pomodori92]](https://github.com/pomodori92)
- [x] Modifiche `WinToolkit-GUI.ps1`.
[[#72](#72)
[@pomodori92]](https://github.com/pomodori92)
- [x] Refactor check `Install-GitPackage` e rimossa variabile
`wingetDeepCheck`.
[[#67](#67)
[@pomodori92]](https://github.com/pomodori92)
- [x]Check se `$resolveWingetPath` è null e messaggi di errore.
[[#66](#66)
[@pomodori92]](https://github.com/pomodori92)
- [x] Comando winget uninstall per includere tutte le versioni
PowerShell. [[#65](#65)
[@pomodori92]](https://github.com/pomodori92)
- [x] PowerShell aggiornato con successo, ma dice "Installazione
interrotta". [[#75](#75)
[@pomodori92]](https://github.com/pomodori92)
- [x] Timeout riparazioni a 3 ore.
[[#71](#71)
[@pomodori92]](https://github.com/pomodori92)
- [x] OfficeTool: barra file eliminati appare sotto le opzioni menu.
[[#68](#68)
[@pomodori92]](https://github.com/pomodori92)
- [x] Dopo aver selezionato l'opzione 3, si blocca durante il ripristino
Winget. [[#59](#59)
[@pomodori92]](https://github.com/pomodori92)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant