Mhoroi mose. Nhasi tinogoverana newe chikamu chekupedzisira chechinyorwa.
Deployment test
Iyi nzira yekuyedza inzira ine simba uye inotitendera kuti tiite chena bhokisi bvunzo kuyedza kushanda kwemukati kwekodhi yedu yezvivakwa. Nekudaro, zvinoganhurira izvo zvatinogona kuyedza. Miedzo inoitwa zvichienderana ne-in-memory deployment plan yakagadzirwa naPulumi isati yasvika chaiyo uye naizvozvo kutumirwa pachayo hakugoni kuongororwa. Kune akadai, Pulumi ine yekubatanidza bvunzo chimiro. Uye nzira mbiri idzi dzinoshanda pamwe chete!
Iyo Pulumi yekubatanidza yekuyedza chimiro yakanyorwa muGo, ndiyo nzira yatinoedza nayo yakawanda yemukati kodhi yedu. Nepo iyo yakambokurukurwa yeyuniti yekuyedza nzira yaive yakafanana nechena bhokisi kuyedzwa, yekubatanidza bvunzo ibhokisi dema. (Kunewo zvingasarudzwa zvekuongorora kwemukati kwakasimba.) Ichi chinyorwa chakagadzirwa kuti chitore chirongwa chePulumi chakakwana uye kuita mabasa akasiyana-siyana ehupenyu pairi, zvakadai sekuendesa stack itsva kubva pakutanga, kuigadzirisa nekusiyana, nekuibvisa, zvichida kakawanda. . Isu tinoamhanyisa nguva nenguva (semuenzaniso, husiku) uye seyedzo yekushushikana.
(Isu
Nekumhanyisa chirongwa uchishandisa iyi chimiro unogona kutarisa zvinotevera:
- Yako purojekiti kodhi ndeye syntactically uye inomhanya isina zvikanganiso.
- Iyo stack uye zvakavanzika zvigadziriso zvigadziriso zvinoshanda uye zvinodudzirwa nemazvo.
- Yako purojekiti inogona kuendeswa zvinobudirira mune yegore mupi wesarudzo yako.
- purojekiti yako inogona kubudirira kukwidziridzwa kubva kune yekutanga nyika kuenda kuN dzimwe nyika.
- Yako purojekiti inogona kuparadzwa zvakabudirira uye kubviswa kubva kune wako wekupa gore.
Sezvatichaona munguva pfupi, chimiro ichi chinogona zvakare kushandiswa kuita runtime yekusimbisa.
Nyore yekubatanidza bvunzo
Kuona izvi zvichiitwa, isu tinotarisa kune repository pulumi/examples
, sechikwata chedu uye nharaunda yePulumi inoshandisa iyo kuyedza yedu yekudhonza zvikumbiro, kuita, uye nehusiku kuvaka.
Pazasi pane bvunzo yakareruka yedu
example_test.go:
package test
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/testing/integration"
)
func TestExamples(t *testing.T) {
awsRegion := os.Getenv("AWS_REGION")
if awsRegion == "" {
awsRegion = "us-west-1"
}
cwd, _ := os.Getwd()
integration.ProgramTest(t, &integration.ProgramTestOptions{
Quick: true,
SkipRefresh: true,
Dir: path.Join(cwd, "..", "..", "aws-js-s3-folder"),
Config: map[string]string{
"aws:region": awsRegion,
},
})
}
Muedzo uyu unoenda kuburikidza nehupenyu hwekutanga hwekugadzira, kugadzirisa, uye kuparadza stack yefolda aws-js-s3-folder
. Zvinotora ingangoita miniti kushuma bvunzo yakapfuura:
$ go test .
PASS
ok ... 43.993s
Pane zvakawanda zvingasarudzwa zvekugadzirisa maitiro ezviedzo izvi. Ona runyorwa ruzere rwezvasarudzo. ProgramTestOptions
. Semuenzaniso, unogona kumisikidza Jaeger endpoint yekutevera (Tracing
), ratidza kuti unotarisira kuti bvunzo yacho ichakundikana kana bvunzo isina kunaka (ExpectFailure
), shandisa nhevedzano ye "edits" kuchirongwa cheshanduko inoteedzana yematunhu (EditDirs
) nezvimwe zvakawanda. Ngatione kuti tingazvishandisa sei kuyedza kutumira kwako application.
Kuongorora zviwanikwa
Kubatanidzwa kwakurukurwa pamusoro kunovimbisa kuti chirongwa chedu "chinoshanda" -hachiputsi. Asi ko kana isu tichida kutarisa zvimiro zveyakaguma stack? Semuenzaniso, kuti mamwe marudzi ezviwanikwa ane (kana haana) akapihwa uye kuti ane humwe hunhu.
Parameter ExtraRuntimeValidation
nokuti ProgramTestOptions
inotibvumira kutarisa mamiriro ekutumira-post-deployment yakanyorwa naPulumi kuitira kuti tikwanise kuita mamwe macheki. Izvi zvinosanganisira mufananidzo wakakwana wemamiriro ezvirongwa zvabuda, kusanganisira kugadziridzwa, kuburitswa kwemitengo yekunze, zviwanikwa zvese uye hutsika hwezvivakwa, uye zvese zvinoenderana pakati pezviwanikwa.
Kuti uone muenzaniso wekutanga weizvi, ngatitarisei kuti chirongwa chedu chinogadzira imwe S3 Bucket:
integration.ProgramTest(t, &integration.ProgramTestOptions{
// as before...
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
var foundBuckets int
for _, res := range stack.Deployment.Resources {
if res.Type == "aws:s3/bucket:Bucket" {
foundBuckets++
}
}
assert.Equal(t, 1, foundBuckets, "Expected to find a single AWS S3 Bucket")
},
})
Zvino, kana isu tichimhanya go bvunzo, haizongopfuura nebhatiri rehupenyu bvunzo, asi zvakare, mushure mekubudirira kuendesa stack, ichaita yekuwedzera cheki pane inoguma mamiriro.
Runtime tests
Parizvino, bvunzo dzese dzanga dziri nezve maitiro ekutumira uye iyo Pulumi sosi modhi. Ko kana iwe uchida kuonesa kuti hurongwa hwako hwakapihwa hunoshanda here? Semuenzaniso, iyo chaiyo muchina uri kushanda, iyo S3 bhaketi rine zvatinotarisira, zvichingodaro.
Iwe unogona kunge watofungidzira maitiro ekuita izvi: sarudzo ExtraRuntimeValidation
nokuti ProgramTestOptions
- iyi ndiyo mukana mukuru weizvi. Panguva ino, unomhanyisa bvunzo yeGo nekuwana iyo yakazara mamiriro ezviwanikwa zvechirongwa chako. Iyi nyika inosanganisira ruzivo rwakadai senge virtual muchina IP kero, maURL, uye zvese zvinodikanwa kuti zvinyatso kupindirana nezvinokonzeresa makore maapplication uye zvivakwa.
Semuenzaniso, chirongwa chedu chekuyedza chinoendesa kunze kwenyika chivakwa webEndpoint
bucket rakanzi websiteUrl
, iyo ndiyo yakazara URL kwatinogona kuwana iyo yakagadziriswa index document
. Kunyangwe isu taigona kuchera mufaira rehurumende kuti tiwane bucket
uye uverenge icho chivakwa zvakananga, asi muzviitiko zvakawanda matura edu anoendesa kunze zvinhu zvinobatsira seizvi zvatinoona zviri nyore kushandisa pakutarisa:
integration.ProgramTest(t, &integration.ProgramTestOptions{
// as before ...
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
url := "http://" + stack.Outputs["websiteUrl"].(string)
resp, err := http.Get(url)
if !assert.NoError(t, err) {
return
}
if !assert.Equal(t, 200, resp.StatusCode) {
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if !assert.NoError(t, err) {
return
}
assert.Contains(t, string(body), "Hello, Pulumi!")
},
})
Kufanana neyedu yapfuura yekumhanyisa cheki, cheki iyi ichaitwa pakarepo mushure mekusimudza stack, zvese mukupindura kufona kuri nyore. go test
. Uye ndiyo ingori muromo weiyo iceberg - yega yega Go test ficha yaunogona kunyora mukodhi inowanikwa.
Kuenderera mberi Infrastructure Integration
Zvakanaka kukwanisa kumhanyisa bvunzo palaptop kana shanduko zhinji dzezvivakwa dziri kuitwa kuti udziyedze usati waendesa kuti dziongororwe kodhi. Asi isu nevazhinji vevatengi vedu vanoedza zvivakwa pamatanho akasiyana ehupenyu hwebudiriro:
- Muchikumbiro chega chega chekukwevera chekuyedza usati wabatanidza.
- Mukupindura kune yega yega kuzvipira, kutarisa kaviri kuti kusanganisa kwaitwa nemazvo.
- Nguva nenguva, senge husiku kana vhiki nevhiki kune kumwe kuedzwa.
- Sechikamu chekuita kana kuyedza kushushikana, iyo inowanzo mhanya kwenguva yakareba uye inomhanyisa bvunzo nenzira dzakafanana uye / kana kutumira iyo imwechete chirongwa kakawanda.
Kune imwe neimwe yeizvi, Pulumi inotsigira kubatanidzwa neyako yaunofarira inoenderera yekubatanidza system. Nekuenderera mberi kwekubatanidza, izvi zvinokupa iwe yakafanana bvunzo yekuvhara yezvivakwa zvako seyako application software.
Pulumi ine rutsigiro rwezvakajairwa CI masisitimu. Hezvino zvimwe zvacho:
Kuti uwane rumwe ruzivo rwakadzama, ndapota tarisa kune zvinyorwa zve
Ephemeral Environments
Mukana une simba kwazvo unovhura kugona kuendesa ephemeral nharaunda chete nekuda kwekugamuchirwa kwekuyedza zvinangwa. Pfungwa
Kana iwe ukashandisa GitHub, ipapo Pulumi inopa
Paunoshandisa Pulumi kune yako yepakati yekubvuma bvunzo, iwe unowana hutsva otomatiki masimba ayo anovandudza chigadzirwa chechikwata uye kukupa chivimbo mumhando yekuchinja kwako.
Mugumisiro
Muchinyorwa chino, taona kuti nekushandisa mitauro yehurongwa hwese chinangwa, nzira dzakawanda dzekuvandudza software dzinowanikwa kwatiri dzakabatsira mukugadzira maapplication edu. Zvinosanganisira kuedzwa kweyuniti, kusanganisa kuyedzwa, uye mashandiro avanoita pamwechete kuita yakakura yekumhanyisa bvunzo. Miedzo iri nyore kumhanya pane zvinodiwa kana muCI system yako.
Pulumi - yakavhurika sosi software, yemahara kushandisa uye inoshanda neako aunofarira programming mitauro nemakore -
β
Source: www.habr.com