Core/Dash CI/CD automaattiset suorituskykytarkistukset

Integroi Core/Dash CI/CD-liukuhihnaasi yhdellä curl-kutsulla. Merkitse suorituskykybudjetin ylittävät koontiversiot ennen julkaisua. Seuraa todellisten käyttäjien suorituskykyä jokaisella julkaisulla.

Ilmainen kokeilu

Trusted by market leaders · Client results

adevintahappyhorizondpg mediamy work featured on web.devloopearplugssnvmarktplaatsmonarchebayerasmusmcaleteiaharvardworkivaperionfotocasanina carenestlecomparevpnsaturnkpnwhowhatwear

Mikä julkaisu teki siitä hitaamman?

LCP oli 2,1 s kaksi kuukautta sitten. Nyt se on 2,9 s. Olet julkaissut neljäkymmentä kertaa sen jälkeen. Tässä on kuitenkin ongelma: pelkkä aikajana ei kerro, mikä julkaisu aiheutti tämän.

Siksi Core/Dash yhdistää jokaisen todellisen käyttäjän vierailun tiettyyn julkaisuun. Mielestämme RUM-datan pitäisi kertoa "v2.4.1 teki tämän" eikä "jokin hidastui viime kuussa".

Core/Dash suorittaa kaksi tarkistusta jokaisen julkaisun yhteydessä. Ennen julkaisua Core/Dash skannaa esikatseluversion ja merkitsee liukuhihnan, jos sivu ylittää budjetin. Julkaisun jälkeen jokainen sivulataus merkitään versiolla, joten jokaista versiota mitataan sen omalla käyttäjäliikenteellä.

Nämä kaksi tarkistusta löytävät Core Web Vitals -ongelmat eri vaiheissa. Ennen julkaisua tehtävä tarkistus on synteettinen, joten se näkee itse koontiversiossa olevat virheet: uusi hero-kuva, joka on 4 Mt PNG, markkinointitägi, joka lisäsi pakettiin 300 Kt skriptiä. Julkaisun jälkeiset tarkistukset ovat puhdasta RUM-dataa. Se kertoo varmuudella, mitä julkaisu todellisuudessa tekee LCP:lle, INP:lle ja CLS:lle.

1: Ennen julkaisua: synteettiset tarkistukset

Core/Dash voi skannata otoksen valvotusta sivustasi. Tuloksia verrataan omiin Core/Dash-suorituskykybudjetteihisi. Jos sivu ylittää budjetin, saat ilmoituksen ennen julkaisua. Päätät itse, mitä teet kyseisellä ilmoituksella.

Jotta tarkistus on luotettava, Core/Dash pisteyttää vain asiat, jotka eivät muutu saman koontiversion kahden ajon välillä. Lighthouse-suorituskykypisteet voivat heilahdella kymmenen pistettä täsmälleen saman sivun kahden ajon välillä, koska niitä hallitsevat CPU-ajoitukset eikä auditointia ajava kone ole koskaan kahdesti sama. Jos pisteytät sen CI:ssä, saat punaisia liukuhihnoja, jotka eivät merkitse mitään.

Lisää tarkistus CI/CD-liukuhihnaasi

Luo ensin projektin API-avain (sovelluksessa: projektisi, sitten AI Insights, sitten Connect Your AI). Lisää sitten tämä vaihe ennen julkaisutehtävääsi. Se kutsuu tarkistuspäätepistettä ja kestää noin 30–45 sekuntia.

STATUS=$(curl -sS -o gate.json -w '%{http_code}' -X POST "https://app.coredash.app/api/project/releases/check" \
  -H "Authorization: Bearer $COREDASH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tag":"v1.2.3","origin":"https://preview.example.app"}')

if [ "$STATUS" != "200" ]; then
  echo "CoreDash check failed to run (HTTP $STATUS): $(cat gate.json)" >&2
  exit 0
fi

VERDICT=$(jq -r '.data.check.status' gate.json)
echo "CoreDash: $VERDICT"

# if [ "$VERDICT" = "breach" ]; then exit 1; fi   ## poista kommentointi estääksesi julkaisun

Oletuksena tämä raportoi tuloksen vain CI-lokeihisi. Poista viimeisen rivin kommentointi keskeyttääksesi koonnin, kun sivu ylittää budjetin.

Dataskeema:

KenttäPakollinenKuvaus
tagkylläVersiomerkkijonosi. Kirjaimia, numeroita, . _ / -, enintään 64 merkkiä.
originkylläVain protokolla ja isäntä, esim. https://pr-42.example.app. Ei polkua, kyselyä tai tunnistetietoja.
shaeiGit-commitin tiiviste
brancheiGit-haaran nimi
actoreiKuka käynnisti julkaisun
repoeiRepositorion nimi
prNumbereiVetopyynnön numero
runUrleiLinkki takaisin CI-ajoon

Git-kentät tallennetaan sovelluksen syvälinkkejä varten, eikä mikään logiikka haaraudu niiden perusteella.

Mitä palautetaan

Kelvollinen pyyntö vastaa aina HTTP 200. Tulokset tai päätös voidaan lukea vastauksesta kohdasta data.check.status:

TilaMerkitys
passJokainen pisteytetty rivi on budjetissa
breachVähintään yksi rivi ylittää budjetin
errorYhtäkään sivua ei voitu skannata
no-budgetsMillään sivulla ei ole budjettia, jota voisi pisteyttää

Huom: Esikatseludomainin on oltava palvelimiemme saavutettavissa julkisesta internetistä

2: Julkaisun jälkeen: RUM-validointi

Julkaisun jälkeiset tarkistukset ja validointi tapahtuvat yhdistämällä RUM-data julkaisuusi. Jotta voimme yhdistää datasi julkaisuusi, voit helposti lähettää nykyisen julkaisuversion API:llemme. 

curl -sS -X POST "https://app.coredash.app/api/project/releases/ingest" \
  -H "Authorization: Bearer $COREDASH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tag":"v1.2.3"}'

Tai täysin automatisoituna GitHub Actionsissa, käyttäen git-viitettä versiona:

- name: Raportoi julkaisu CoreDashille
  if: success()
  env:
    COREDASH_API_KEY: ${{ secrets.COREDASH_API_KEY }}
  run: |
    curl -sS -f -X POST "https://app.coredash.app/api/project/releases/ingest" \
      -H "Authorization: Bearer ${COREDASH_API_KEY}" \
      -H "Content-Type: application/json" \
      -d "{\"tag\":\"${{ github.ref_name }}\"}"

Ei liukuhihnaa, ei hätää! CoreDashin julkaisusivulla on Merkitse julkaisu -lomake. Koska tämä vaatii manuaalisen toimenpiteen eikä sitä voi automatisoida, se ei ole vaadittu menetelmä.

Julkaisujen vertailu Core/Dashissa

Julkaisut-sivu listaa viimeiset 30 päivää, uusin ensin: versio, tuliko se CI:stä vai sovelluksesta, julkaisuaika, p75 jokaiselle Core Web Vitalille, muutos edelliseen julkaisuun ja reaaliaikainen budjettitila.

Julkaisun tiedot on paikka, jossa nämä kaksi puolta todella kohtaavat. Ennen julkaisua tehty tarkistus on ylhäällä, yksi rivi skannattua sivua ja budjettiriviä kohden. Sen alla julkaisu mitataan koko sivustoa vasten samoilla suodattimilla. Näin näet samalta näytöltä, mitä koontiversio lupasi ja mitä käyttäjäsi todellisuudessa saivat.

Performance Snapshots voi piirtää julkaisumerkit kaavioihin, mutta vain julkaistuista versioista.

Katso myös: Core/Dash API tämän datan kyselyyn skriptillä tai tekoälyagentilla, hälytykset ja ilmoitukset budjeteille, joita nämä tulokset käyttävät, ja asennus, jos seurantakoodi ei ole vielä sivustollasi.