name: build-enterprise on: push: branches: - main tags: - v* jobs: prepare: runs-on: ubuntu-latest outputs: docker_providers: ${{ steps.set-docker-providers.outputs.providers }} steps: - name: set-docker-providers id: set-docker-providers run: | if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ || ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ ]]; then echo "providers=dockerhub gcp" >> $GITHUB_OUTPUT else echo "providers=gcp" >> $GITHUB_OUTPUT fi - name: create-dotenv run: | mkdir -p frontend echo 'CI=1' > frontend/.env echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' >> frontend/.env echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> frontend/.env echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> frontend/.env echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> frontend/.env echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> frontend/.env echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> frontend/.env echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> frontend/.env echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> frontend/.env echo 'CUSTOMERIO_ID="${{ secrets.CUSTOMERIO_ID }}"' >> frontend/.env echo 'CUSTOMERIO_SITE_ID="${{ secrets.CUSTOMERIO_SITE_ID }}"' >> frontend/.env - name: cache-dotenv uses: actions/cache@v4 with: path: frontend/.env key: enterprise-dotenv-${{ github.sha }} js-build: uses: signoz/primus.workflows/.github/workflows/js-build.yaml@main needs: prepare secrets: inherit with: PRIMUS_REF: main JS_SRC: frontend JS_INPUT_ARTIFACT_CACHE_KEY: enterprise-dotenv-${{ github.sha }} JS_INPUT_ARTIFACT_PATH: frontend/.env JS_OUTPUT_ARTIFACT_CACHE_KEY: enterprise-jsbuild-${{ github.sha }} JS_OUTPUT_ARTIFACT_PATH: frontend/build DOCKER_BUILD: false DOCKER_MANIFEST: false go-build: uses: signoz/primus.workflows/.github/workflows/go-build.yaml@main needs: [prepare, js-build] secrets: inherit with: PRIMUS_REF: main GO_INPUT_ARTIFACT_CACHE_KEY: enterprise-jsbuild-${{ github.sha }} GO_INPUT_ARTIFACT_PATH: frontend/build GO_BUILD_CONTEXT: ./ee/query-service GO_BUILD_FLAGS: >- -tags timetzdata -ldflags='-linkmode external -extldflags \"-static\" -s -w -X github.com/signoz/zeus/pkg/version.Version=\$($MAKE info-version) -X github.com/signoz/zeus/pkg/version.variant=enterprise -X github.com/signoz/zeus/pkg/version.hash=\$($MAKE info-commit-short) -X github.com/signoz/zeus/pkg/version.time=\$($MAKE info-timestamp) -X github.com/signoz/zeus/pkg/version.branch=\$($MAKE info-branch) -X github.com/signoz/zeus/ee/query-service/constants.ZeusURL=https://api.signoz.cloud -X github.com/signoz/zeus/ee/query-service/constants.LicenseSignozIo=https://license.signoz.io/api/v1' GO_CGO_ENABLED: 1 DOCKER_BASE_IMAGES: '{"alpine": "alpine:3.20.3"}' DOCKER_DOCKERFILE_PATH: ./ee/query-service/Dockerfile.multi-arch DOCKER_MANIFEST: true DOCKER_PROVIDERS: ${{ needs.prepare.outputs.docker_providers }}