Granska versionen och testa en åtgärd
Övervakning av arbetsflödeskörning och hantering av åtgärdsversioner är viktiga kunskaper för att upprätthålla tillförlitliga CI/CD-pipelines. Nu ska vi utforska hur du får åtkomst till loggar, felsöker problem och kontrollerar åtgärdsversioner på ett effektivt sätt.
Åtkomst till arbetsflödesloggar
Visa exekveringsresultat
Alla åtgärdsutdata samlas in automatiskt och är tillgängliga via GitHub-webbgränssnittet:
- Gå till fliken Åtgärder: Klicka på "Åtgärder" i lagringsplatsens övre navigering
- Välj arbetsflödeskörning: Välj den specifika arbetsflödeskörning som du vill undersöka
- Visa jobbinformation: Klicka på ett jobbnamn för att se enskilda stegutdata
- Expandera stegets loggar: Klicka på valfritt steg för att visa dess detaljerade konsolutdata
Förbättrad felsökning
För djupare felsökning aktiverar du felsökningsloggning genom att lägga till dessa lagringsplatshemligheter:
# Enable runner diagnostic logging
ACTIONS_RUNNER_DEBUG: true
# Enable step debug logging
ACTIONS_STEP_DEBUG: true
Felsökningsloggar ger:
- Detaljerad miljöinformation för löpare
- Stegvisa exekveringsspår
- Utökade felmeddelanden och stackspårningar
- Information om nätverks- och filsystemåtgärder
Mer information finns i Aktivera felsökningsloggning.
Versionshantering av åtgärder
Om du väljer rätt strategi för åtgärdsversion balanseras stabilitet, säkerhet och funktionsuppdateringar. Varje metod har specifika användningsfall:
Semantiska versionstaggar (rekommenderas)
Använd semantiska versionstaggar för förutsägbara, stabila versioner:
steps:
- name: Checkout code
uses: actions/checkout@v4 # Major version (gets latest v4.x.x)
- name: Setup Node.js
uses: actions/setup-node@v4.0.2 # Exact version for critical dependencies
Fördelar:
- Automatiska korrigeringar och mindre uppdateringar i huvudversionen
- Brytande ändringar sker endast mellan huvudversioner
- Rensa versionsprogression och ändringsspårning
SHA-commit-referenser (maximal säkerhet)
Ange specifika commits för maximal säkerhet och reproducerbarhet:
steps:
- name: Deploy with exact commit
uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e
Fördelar:
- Oföränderlig referens – åtgärdskoden kan inte ändras
- Högsta säkerhet för produktionsmiljöer
- Fullständig granskning av åtgärdsberoenden
Nackdelar:
- Inga automatiska säkerhetsuppdateringar
- Manuell ansträngning krävs för att uppdatera versioner
Grenreferenser (kontinuerliga uppdateringar)
Referensgrenar för att ta emot de senaste uppdateringarna automatiskt:
steps:
- name: Use cutting-edge features
uses: actions/cache@main # Gets latest from main branch
- name: Test beta features
uses: custom-org/deploy-action@develop # Development branch
Användningsfall:
- Testa nya funktioner före lanseringen
- Utvecklings- och mellanlagringsmiljöer
- När du behöver de senaste felkorrigeringarna omedelbart
risker:
- Potentiella oförenliga ändringar utan föregående meddelande
- Minskad stabilitet i produktionsarbetsflöden
Bästa praxis för strategier kring åtgärdsversioner
Rekommenderad versionshanteringsmetod per miljö:
| Miljö | Strategi | Example | Logisk grund |
|---|---|---|---|
| Produktions- | Huvudversionstaggar eller SHA |
@v4 eller @abc123 |
Stabilitet och säkerhet |
| Iscensättning | Exakta versionstaggar | @v4.2.1 |
Kontrollerad testning |
| Utveckling | Filialreferenser | @main |
Senaste funktionerna |
Säkerhetsfrågor
- Fästa kritiska åtgärder: Använd SHA-referenser för distribution och säkerhetskänsliga åtgärder
- Granska uppdateringar: Testa nya versioner i icke-produktionsmiljöer först
- Övervaka beroenden: Använd verktyg som Dependabot för att spåra åtgärdsuppdateringar
- Granskningsåtgärdskällor: Använd endast åtgärder från betrodda utgivare
Arbetsflöde för uppdateringshantering
# Example: Controlled action updates with testing
name: Update Dependencies
on:
schedule:
- cron: "0 2 * * 1" # Weekly on Monday at 2 AM
jobs:
update-actions:
runs-on: ubuntu-latest
steps:
- name: Check for action updates
uses: actions/setup-node@v4
- name: Test with new versions
run: npm test
- name: Create update PR
if: success()
uses: peter-evans/create-pull-request@v5
Testning och validering
Praktiska utbildningsresurser
Öva åtgärdsutveckling med GitHubs interaktiva självstudier:
-
GitHub-kunskaper: Hello GitHub Actions – Interaktiv självstudie som omfattar:
- Organisation och struktur för arbetsflödesfil
- Skriva körbara skript och kommandon
- Skapa arbetsflödes- och åtgärdsblock
- Utlösa arbetsflöden med olika händelser
- Tolka arbetsflödesloggar och felsökning
Lokala testverktyg
- act: Kör GitHub Actions lokalt för snabb testning
- GitHub CLI: Interagera med åtgärder via kommandoraden
-
Åtgärdsfelsökning: Använd
tmateåtgärden för interaktiva SSH-felsökningssessioner
Checklista för testning
Innan du distribuerar åtgärder till produktion:
- Testa i utvecklingsmiljö
- Verifiera med flera indatascenarier
- Verifiera felhantering och gränsfall
- Verifiera säkerhet och behörigheter
- Granska loggar för exponering av känslig information