From 44b04a9b62a383431e3a676a47031b4ec4e23e0c Mon Sep 17 00:00:00 2001 From: Constantin Graf Date: Wed, 24 Jun 2026 17:37:06 +0200 Subject: [PATCH] Add extensions manifest --- .github/workflows/build-onpremise.yml | 12 +++++++++++- .github/workflows/build-private.yml | 22 +++++++++++++++++++--- extensions/manifest.json | 14 ++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 extensions/manifest.json diff --git a/.github/workflows/build-onpremise.yml b/.github/workflows/build-onpremise.yml index df2405d7..dc98d131 100644 --- a/.github/workflows/build-onpremise.yml +++ b/.github/workflows/build-onpremise.yml @@ -8,6 +8,7 @@ on: pull_request: paths: - '.github/workflows/build-onpremise.yml' + - 'extensions/manifest.json' - 'docker/prod/**' workflow_dispatch: @@ -95,10 +96,19 @@ jobs: with: node-version: '20.x' + - name: "Read extension manifest" + id: extension-manifest + run: | + { + echo "invoicing_repository=$(jq -r '.Invoicing.repository' extensions/manifest.json)" + echo "invoicing_ref=$(jq -r '.Invoicing.ref' extensions/manifest.json)" + } >> "$GITHUB_OUTPUT" + - name: "Checkout invoicing extension" uses: actions/checkout@v6 with: - repository: solidtime-io/extension-invoicing + repository: ${{ steps.extension-manifest.outputs.invoicing_repository }} + ref: ${{ steps.extension-manifest.outputs.invoicing_ref }} path: extensions/Invoicing ssh-key: ${{ secrets.SSH_PRIVATE_KEY_INVOICING_EXTENSION }} diff --git a/.github/workflows/build-private.yml b/.github/workflows/build-private.yml index 665dcac0..115a7710 100644 --- a/.github/workflows/build-private.yml +++ b/.github/workflows/build-private.yml @@ -8,6 +8,7 @@ on: pull_request: paths: - '.github/workflows/build-private.yml' + - 'extensions/manifest.json' - 'docker/prod/**' workflow_dispatch: permissions: @@ -72,10 +73,23 @@ jobs: with: node-version: '20.x' + - name: "Read extension manifest" + id: extension-manifest + run: | + { + echo "billing_repository=$(jq -r '.Billing.repository' extensions/manifest.json)" + echo "billing_ref=$(jq -r '.Billing.ref' extensions/manifest.json)" + echo "services_repository=$(jq -r '.Services.repository' extensions/manifest.json)" + echo "services_ref=$(jq -r '.Services.ref' extensions/manifest.json)" + echo "invoicing_repository=$(jq -r '.Invoicing.repository' extensions/manifest.json)" + echo "invoicing_ref=$(jq -r '.Invoicing.ref' extensions/manifest.json)" + } >> "$GITHUB_OUTPUT" + - name: "Checkout billing extension" uses: actions/checkout@v6 with: - repository: solidtime-io/extension-billing + repository: ${{ steps.extension-manifest.outputs.billing_repository }} + ref: ${{ steps.extension-manifest.outputs.billing_ref }} path: extensions/Billing ssh-key: ${{ secrets.SSH_PRIVATE_KEY_BILLING_EXTENSION }} @@ -95,7 +109,8 @@ jobs: - name: "Checkout services extension" uses: actions/checkout@v6 with: - repository: solidtime-io/extension-services + repository: ${{ steps.extension-manifest.outputs.services_repository }} + ref: ${{ steps.extension-manifest.outputs.services_ref }} path: extensions/Services ssh-key: ${{ secrets.SSH_PRIVATE_KEY_SERVICES_EXTENSION }} @@ -113,7 +128,8 @@ jobs: - name: "Checkout invoicing extension" uses: actions/checkout@v6 with: - repository: solidtime-io/extension-invoicing + repository: ${{ steps.extension-manifest.outputs.invoicing_repository }} + ref: ${{ steps.extension-manifest.outputs.invoicing_ref }} path: extensions/Invoicing ssh-key: ${{ secrets.SSH_PRIVATE_KEY_INVOICING_EXTENSION }} diff --git a/extensions/manifest.json b/extensions/manifest.json new file mode 100644 index 00000000..dae70f42 --- /dev/null +++ b/extensions/manifest.json @@ -0,0 +1,14 @@ +{ + "Billing": { + "repository": "solidtime-io/extension-billing", + "ref": "v0.0.1" + }, + "Services": { + "repository": "solidtime-io/extension-services", + "ref": "v0.0.1" + }, + "Invoicing": { + "repository": "solidtime-io/extension-invoicing", + "ref": "v0.0.1" + } +}