From 47f013856d856a580b81f874879ab7dec21d899a Mon Sep 17 00:00:00 2001 From: Kian Parvin <46668016+kian99@users.noreply.github.com> Date: Tue, 5 Sep 2023 09:08:51 +0200 Subject: [PATCH 1/2] Smoke test (#1039) * Adds a smoke test to JIMM's CI * Tweak Candid image build * Increase jimm container timeout * Increase retries and add timestamps * Greatly increase retries --- .github/workflows/ci.yaml | 20 ++++++++++++++++++++ docker-compose.yaml | 9 +++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6f0775c64..bbb802bc0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -52,3 +52,23 @@ jobs: PGSSLMODE: disable PGUSER: jimm PGPORT: 5432 + + smoke_test: + name: Smoke Test + runs-on: ubuntu-20.04 + # The docker compose has a healthcheck on the JIMM container. + # So if the compose returns with exit code 0 then the JIMM server successfully started. + steps: + - uses: actions/checkout@v3 + - name: Pull candid repo for test environment + run: | + git clone https://github.com/canonical/candid.git ./tmp/candid + cd ./tmp/candid + make image + docker image ls candid + - name: Add volume files + run: | + touch ./local/vault/approle.json + touch ./local/vault/roleid.txt + - run: go mod vendor + - run: docker compose --profile dev up -d --wait --timestamps diff --git a/docker-compose.yaml b/docker-compose.yaml index 4b3858efe..e4d11dfd9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -82,7 +82,7 @@ services: test: [ "CMD", "curl", "http://jimm.localhost:80" ] interval: 5s timeout: 5s - retries: 5 + retries: 40 depends_on: db: condition: service_healthy @@ -90,6 +90,8 @@ services: condition: service_healthy traefik: condition: service_healthy + insert-hardcoded-auth-model: + condition: service_completed_successfully labels: traefik.enable: true traefik.http.routers.jimm.rule: Host(`jimm.localhost`) @@ -128,11 +130,6 @@ services: VAULT_DEV_ROOT_TOKEN_ID: "token" cap_add: - IPC_LOCK - healthcheck: - test: [ "CMD", "curl", "http://127.0.0.1:8200/v1/sys/health" ] - interval: 5s - timeout: 5s - retries: 10 volumes: - ./local/vault/vault.hcl:/vault/config/vault.hcl - ./local/vault/init.sh:/vault/init.sh From b52586833df0e17087ab527687fe169b47348ea7 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Tue, 5 Sep 2023 12:56:15 +0100 Subject: [PATCH 2/2] Enable Postgres store tests (#1040) * Enable Postgres store tests Signed-off-by: Babak K. Shandiz * Add dummy `return` to trigger workflows Signed-off-by: Babak K. Shandiz * Change equal asserts on time structs to deep-equal Signed-off-by: Babak K. Shandiz --------- Signed-off-by: Babak K. Shandiz --- .github/workflows/ci.yaml | 1 + internal/db/pgx_test.go | 1 + internal/db/secrets_test.go | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bbb802bc0..fe68f7dad 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,6 +47,7 @@ jobs: run: go test -mod readonly ./... env: JIMM_DSN: postgresql://jimm:jimm@localhost:5432/jimm + JIMM_TEST_PGXDSN: postgresql://jimm:jimm@localhost:5432/jimm PGHOST: localhost PGPASSWORD: jimm PGSSLMODE: disable diff --git a/internal/db/pgx_test.go b/internal/db/pgx_test.go index 3b1275345..d1234c003 100644 --- a/internal/db/pgx_test.go +++ b/internal/db/pgx_test.go @@ -37,6 +37,7 @@ func (s *postgresSuite) Init(c *qt.C) { dsn := os.Getenv("JIMM_TEST_PGXDSN") if dsn == "" { c.Skip("postgresql not configured") + return } connCfg, err := pgx.ParseConfig(dsn) diff --git a/internal/db/secrets_test.go b/internal/db/secrets_test.go index e0ba93d1f..64512e2f1 100644 --- a/internal/db/secrets_test.go +++ b/internal/db/secrets_test.go @@ -32,7 +32,7 @@ func (s *dbSuite) TestInsertSecret(c *qt.C) { secret := dbmodel.Secret{} tx := s.Database.DB.First(&secret) c.Assert(tx.Error, qt.IsNil) - c.Assert(secret.Time, qt.Equals, testTime) + c.Assert(secret.Time, qt.DeepEquals, testTime) c.Assert(secret.Type, qt.Equals, "generic") c.Assert(secret.Tag, qt.Equals, "123") c.Assert(secret.Data, qt.IsNil) @@ -61,7 +61,7 @@ func (s *dbSuite) TestUpsertSecret(c *qt.C) { secret := dbmodel.Secret{} tx := s.Database.DB.First(&secret) c.Assert(tx.Error, qt.IsNil) - c.Assert(secret.Time, qt.Equals, newTime) + c.Assert(secret.Time, qt.DeepEquals, newTime) c.Assert([]byte(secret.Data), qt.DeepEquals, []byte("123")) } @@ -79,7 +79,7 @@ func (s *dbSuite) TestGetSecret(c *qt.C) { c.Assert(s.Database.DB.Create(&u).Error, qt.IsNil) secret := dbmodel.Secret{Type: "generic", Tag: "123"} c.Assert(s.Database.GetSecret(ctx, &secret), qt.IsNil) - c.Assert(secret.Time, qt.Equals, testTime) + c.Assert(secret.Time, qt.DeepEquals, testTime) c.Assert(secret.Type, qt.Equals, "generic") c.Assert(secret.Tag, qt.Equals, "123") }