From 1df0897c83760ffd5db039c7869cb170b38d5240 Mon Sep 17 00:00:00 2001 From: Maxim Rychkov Date: Mon, 30 Mar 2026 13:08:28 +0500 Subject: [PATCH 1/4] feat: add invoices-api --- deploy/environments/local/values.yaml.gotmpl | 1 + deploy/helmfile.yaml | 25 ++++++++++++++++++-- deploy/values-invoices-api.yaml.gotmpl | 8 +++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 deploy/values-invoices-api.yaml.gotmpl diff --git a/deploy/environments/local/values.yaml.gotmpl b/deploy/environments/local/values.yaml.gotmpl index 4f52459..179d249 100644 --- a/deploy/environments/local/values.yaml.gotmpl +++ b/deploy/environments/local/values.yaml.gotmpl @@ -10,6 +10,7 @@ authUiServiceUrl: "http://inner-circle-auth-ui-nginx:30090" accountsServiceUrl: "http://inner-circle-accounts-api-nginx:30090" authServiceUrl: "http://auth-api-nginx:30090/api/auth" employeesServiceUrl: "http://inner-circle-employees-api-nginx:30090" +timeServiceUrl: "http://inner-circle-time-api-aspnet-core:30090/api" mailSmtpHost: "tobemodified" mailSmtpPort: "tobemodified" fromEmail: "tobemodified" diff --git a/deploy/helmfile.yaml b/deploy/helmfile.yaml index cc5e165..88b879c 100644 --- a/deploy/helmfile.yaml +++ b/deploy/helmfile.yaml @@ -185,6 +185,26 @@ releases: - values.yaml.gotmpl - values-time-api.yaml.gotmpl + - name: inner-circle-invoices-api + labels: + app: inner-circle-invoices-api + wait: true + chart: bitnami/aspnet-core + version: 4.4.7 + # it won't work anyway until ingress controller is created + # thus we wait for it to be ready first + needs: + - ingress-nginx + - inner-circle-employees-api + - inner-circle-time-api + - postgresql + values: + # https://helmfile.readthedocs.io/en/latest/#loading-remote-environment-values-files + # %23 is thee URL encoded version of the `#` character. It's needed because `#` is fragment in URL and everything that follows it is ignored. + - git::https://github.com/TourmalineCore/inner-circle-invoices-api.git@/ci/values.yaml?ref=feature/%235-add-invoices-api + - values.yaml.gotmpl + - values-invoices-api.yaml.gotmpl + - name: inner-circle-email-sender labels: app: inner-circle-email-sender @@ -356,10 +376,11 @@ releases: # thus we wait for it to be ready first needs: - ingress-nginx - # - inner-circle-invoices-api + - inner-circle-invoices-api values: # https://helmfile.readthedocs.io/en/latest/#loading-remote-environment-values-files - - git::https://github.com/TourmalineCore/inner-circle-invoices-ui.git@/ci/values.yaml?ref=master + # %23 is thee URL encoded version of the `#` character. It's needed because `#` is fragment in URL and everything that follows it is ignored. + - git::https://github.com/TourmalineCore/inner-circle-invoices-ui.git@/ci/values.yaml?ref=feature/%2352-add-client-table - values.yaml.gotmpl - values-invoices-ui.yaml.gotmpl diff --git a/deploy/values-invoices-api.yaml.gotmpl b/deploy/values-invoices-api.yaml.gotmpl new file mode 100644 index 0000000..33d1ea2 --- /dev/null +++ b/deploy/values-invoices-api.yaml.gotmpl @@ -0,0 +1,8 @@ +image: + tag: "sha-e35fd20c5da7f9a2e31d0d0cb96210455a3ba92a " + +extraConfigMapEnvVars: + ASPNETCORE_HTTP_PORTS: "80" + AuthenticationOptions__PublicSigningKey: "{{ .Values.publicSigningKey }}" + ExternalDepsUrls__EmployeesApiRootUrl: "{{ .Values.employeesServiceUrl }}" + ExternalDepsUrls__TimeApiRootUrl: "{{ .Values.timeServiceUrl }}" From ab814734540fd03a4e25b318268abab25929abdf Mon Sep 17 00:00:00 2001 From: Maxim Rychkov Date: Mon, 30 Mar 2026 13:09:19 +0500 Subject: [PATCH 2/4] test: use commit sha for time-api and invoices-ui until they will be merged to master --- deploy/values-invoices-ui.yaml.gotmpl | 2 +- deploy/values-time-api.yaml.gotmpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/values-invoices-ui.yaml.gotmpl b/deploy/values-invoices-ui.yaml.gotmpl index 9ab2754..e8c0949 100644 --- a/deploy/values-invoices-ui.yaml.gotmpl +++ b/deploy/values-invoices-ui.yaml.gotmpl @@ -1,5 +1,5 @@ image: - tag: "latest" + tag: "sha-a2673947095d2ed9e4c6ae50c640c0d9d0e0a6cd " extraConfigMapEnvVars: API_ROOT_URL: "{{ .Values.baseExternalUrl }}/api/invoices" diff --git a/deploy/values-time-api.yaml.gotmpl b/deploy/values-time-api.yaml.gotmpl index 0ba3c4c..4941c9f 100644 --- a/deploy/values-time-api.yaml.gotmpl +++ b/deploy/values-time-api.yaml.gotmpl @@ -1,5 +1,5 @@ image: - tag: "latest" + tag: "sha-c29216740d8f1640e455677d254887958dcc2642" extraConfigMapEnvVars: ASPNETCORE_HTTP_PORTS: "80" From 812e5b4e85ce0623f8050e5bee963de669f80f94 Mon Sep 17 00:00:00 2001 From: Maxim Rychkov Date: Mon, 30 Mar 2026 13:46:51 +0500 Subject: [PATCH 3/4] ci: use master branch and latest tag for invoices-api, invoices-ui and time-api --- deploy/helmfile.yaml | 6 ++---- deploy/values-invoices-api.yaml.gotmpl | 2 +- deploy/values-invoices-ui.yaml.gotmpl | 2 +- deploy/values-time-api.yaml.gotmpl | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/deploy/helmfile.yaml b/deploy/helmfile.yaml index 88b879c..5d1913b 100644 --- a/deploy/helmfile.yaml +++ b/deploy/helmfile.yaml @@ -200,8 +200,7 @@ releases: - postgresql values: # https://helmfile.readthedocs.io/en/latest/#loading-remote-environment-values-files - # %23 is thee URL encoded version of the `#` character. It's needed because `#` is fragment in URL and everything that follows it is ignored. - - git::https://github.com/TourmalineCore/inner-circle-invoices-api.git@/ci/values.yaml?ref=feature/%235-add-invoices-api + - git::https://github.com/TourmalineCore/inner-circle-invoices-api.git@/ci/values.yaml?ref=master - values.yaml.gotmpl - values-invoices-api.yaml.gotmpl @@ -379,8 +378,7 @@ releases: - inner-circle-invoices-api values: # https://helmfile.readthedocs.io/en/latest/#loading-remote-environment-values-files - # %23 is thee URL encoded version of the `#` character. It's needed because `#` is fragment in URL and everything that follows it is ignored. - - git::https://github.com/TourmalineCore/inner-circle-invoices-ui.git@/ci/values.yaml?ref=feature/%2352-add-client-table + - git::https://github.com/TourmalineCore/inner-circle-invoices-ui.git@/ci/values.yaml?ref=master - values.yaml.gotmpl - values-invoices-ui.yaml.gotmpl diff --git a/deploy/values-invoices-api.yaml.gotmpl b/deploy/values-invoices-api.yaml.gotmpl index 33d1ea2..7f9906a 100644 --- a/deploy/values-invoices-api.yaml.gotmpl +++ b/deploy/values-invoices-api.yaml.gotmpl @@ -1,5 +1,5 @@ image: - tag: "sha-e35fd20c5da7f9a2e31d0d0cb96210455a3ba92a " + tag: "latest" extraConfigMapEnvVars: ASPNETCORE_HTTP_PORTS: "80" diff --git a/deploy/values-invoices-ui.yaml.gotmpl b/deploy/values-invoices-ui.yaml.gotmpl index e8c0949..9ab2754 100644 --- a/deploy/values-invoices-ui.yaml.gotmpl +++ b/deploy/values-invoices-ui.yaml.gotmpl @@ -1,5 +1,5 @@ image: - tag: "sha-a2673947095d2ed9e4c6ae50c640c0d9d0e0a6cd " + tag: "latest" extraConfigMapEnvVars: API_ROOT_URL: "{{ .Values.baseExternalUrl }}/api/invoices" diff --git a/deploy/values-time-api.yaml.gotmpl b/deploy/values-time-api.yaml.gotmpl index 4941c9f..0ba3c4c 100644 --- a/deploy/values-time-api.yaml.gotmpl +++ b/deploy/values-time-api.yaml.gotmpl @@ -1,5 +1,5 @@ image: - tag: "sha-c29216740d8f1640e455677d254887958dcc2642" + tag: "latest" extraConfigMapEnvVars: ASPNETCORE_HTTP_PORTS: "80" From 6c1ef303a44472853b9f6fdc671ae73131e631d5 Mon Sep 17 00:00:00 2001 From: Dmitriy Myakotin <75628188+MDI74@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:46:41 +0500 Subject: [PATCH 4/4] feat: add run invoices e2e tests --- .github/workflows/run-e2e-tests.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 4723052..55f1259 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -265,3 +265,24 @@ jobs: "AUTH_API_ROOT_URL": "http://localhost:30090/api/auth" "API_ROOT_URL": "http://localhost:30090/api/time" "SHOULD_USE_FAKE_EXTERNAL_DEPENDENCIES": "false" + + - name: Checkout Invoices API + uses: actions/checkout@v4 + with: + repository: TourmalineCore/inner-circle-invoice-api + + - name: Karate Run Against Invoices API + run: | + java -jar /tmp/karate.jar . + env: + "AUTH_SLYTHERINE_TENANT_DRACO_MALFOY_LOGIN_WITH_ALL_PERMISSIONS": "malfoy@tourmalinecore.com" + "AUTH_SLYTHERINE_TENANT_DRACO_MALFOY_PASSWORD_WITH_ALL_PERMISSIONS": "Serpens1!" + "AUTH_SLYTHERINE_TENANT_SEVERUS_SNAPE_LOGIN_WITH_ALL_PERMISSIONS": "snape@tourmalinecore.com" + "AUTH_SLYTHERINE_TENANT_SEVERUS_SNAPE_PASSWORD_WITH_ALL_PERMISSIONS": "Silencio1!" + "AUTH_RAVENCLAW_TENANT_CHO_CHANG_LOGIN_WITH_ALL_PERMISSIONS": "chang@tourmalinecore.com" + "AUTH_RAVENCLAW_TENANT_CHO_CHANG_PASSWORD_WITH_ALL_PERMISSIONS": "Reparo1!" + "AUTH_SLYTHERINE_TENANT_GREGORY_GOYLE_LOGIN_WITHOUT_PERMISSIONS": "goyle@tourmalinecore.com" + "AUTH_SLYTHERINE_TENANT_GREGORY_GOYLE_PASSWORD_WITHOUT_PERMISSIONS": "Crucio1!" + "AUTH_API_ROOT_URL": "http://localhost:30090/api/auth" + "API_ROOT_URL": "http://localhost:30090/api/invoices" + "SHOULD_USE_FAKE_EXTERNAL_DEPENDENCIES": "false"