diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b3c7ee4cdd..e3d233fffa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -464,6 +464,29 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCS_REPO_TOKEN: ${{ secrets.DOCS_REPO_TOKEN }} + bump-website-version: + name: Bump website version + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + needs: [allocate-runners] + runs-on: ubuntu-latest + # Permission reference: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs + permissions: + issues: write # Allows the action to create issues for cyborg. + contents: write # Allows the action to create a release. + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + persist-credentials: false + - uses: ./.github/actions/setup-cyborg + - name: Bump website version + working-directory: cyborg + run: pnpm tsx bin/bump-website-version.ts + env: + VERSION: ${{ needs.allocate-runners.outputs.version }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + WEBSITE_REPO_TOKEN: ${{ secrets.WEBSITE_REPO_TOKEN }} + notification: if: ${{ github.repository == 'GreptimeTeam/greptimedb' && (github.event_name == 'push' || github.event_name == 'schedule') && always() }} name: Send notification to Greptime team diff --git a/README.md b/README.md index cd986e75ef..793e424060 100644 --- a/README.md +++ b/README.md @@ -73,13 +73,13 @@ | Feature | Description | | --------- | ----------- | -| [Unified Observability Data](https://docs.greptime.com/user-guide/concepts/why-greptimedb) | Store metrics, logs, and traces as timestamped, contextual events. Query via [SQL](https://docs.greptime.com/user-guide/query-data/sql), [PromQL](https://docs.greptime.com/user-guide/query-data/promql), and [streaming](https://docs.greptime.com/user-guide/flow-computation/overview). | +| [Unified Observability Data](https://docs.greptime.com/user-guide/concepts/why-greptimedb) | Store metrics, logs, and traces as timestamped, contextual wide events. Query via [SQL](https://docs.greptime.com/user-guide/query-data/sql), [PromQL](https://docs.greptime.com/user-guide/query-data/promql), and [streaming](https://docs.greptime.com/user-guide/flow-computation/overview). | | [High Performance & Cost Effective](https://docs.greptime.com/user-guide/manage-data/data-index) | Written in Rust, with a distributed query engine, [rich indexing](https://docs.greptime.com/user-guide/manage-data/data-index), and optimized columnar storage, delivering sub-second responses at PB scale. | | [Cloud-Native Architecture](https://docs.greptime.com/user-guide/concepts/architecture) | Designed for [Kubernetes](https://docs.greptime.com/user-guide/deployments/deploy-on-kubernetes/greptimedb-operator-management), with compute/storage separation, native object storage (AWS S3, Azure Blob, etc.) and seamless cross-cloud access. | | [Developer-Friendly](https://docs.greptime.com/user-guide/protocols/overview) | Access via SQL/PromQL interfaces, REST API, MySQL/PostgreSQL protocols, and popular ingestion [protocols](https://docs.greptime.com/user-guide/protocols/overview). | | [Flexible Deployment](https://docs.greptime.com/user-guide/deployments/overview) | Deploy anywhere: edge (including ARM/[Android](https://docs.greptime.com/user-guide/deployments/run-on-android)) or cloud, with unified APIs and efficient data sync. | -[Learn more in Why GreptimeDB](https://docs.greptime.com/user-guide/concepts/why-greptimedb). +Learn more in [Why GreptimeDB](https://docs.greptime.com/user-guide/concepts/why-greptimedb) and [Observability 2.0 and the Database for It](https://greptime.com/blogs/2025-04-25-greptimedb-observability2-new-database). ## Quick Comparison @@ -170,7 +170,7 @@ cargo run -- standalone start > **Status:** Beta. > **GA (v1.0):** Targeted for mid 2025. -- Used in production by early adopters +- Being used in production by early adopters - Stable, actively maintained, with regular releases ([version info](https://docs.greptime.com/nightly/reference/about-greptimedb-version)) - Suitable for evaluation and pilot deployments diff --git a/cyborg/bin/bump-website-version.ts b/cyborg/bin/bump-website-version.ts new file mode 100644 index 0000000000..068047233b --- /dev/null +++ b/cyborg/bin/bump-website-version.ts @@ -0,0 +1,57 @@ +/* + * Copyright 2023 Greptime Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as core from "@actions/core"; +import {obtainClient} from "@/common"; + +async function triggerWorkflow(workflowId: string, version: string) { + const websiteClient = obtainClient("WEBSITE_REPO_TOKEN") + try { + await websiteClient.rest.actions.createWorkflowDispatch({ + owner: "GreptimeTeam", + repo: "website", + workflow_id: workflowId, + ref: "main", + inputs: { + version, + }, + }); + console.log(`Successfully triggered ${workflowId} workflow with version ${version}`); + } catch (error) { + core.setFailed(`Failed to trigger workflow: ${error.message}`); + } +} + +const version = process.env.VERSION; +if (!version) { + core.setFailed("VERSION environment variable is required"); + process.exit(1); +} + +// Remove 'v' prefix if exists +const cleanVersion = version.startsWith('v') ? version.slice(1) : version; + +if (cleanVersion.includes('nightly')) { + console.log('Nightly version detected, skipping workflow trigger.'); + process.exit(0); +} + +try { + triggerWorkflow('bump-patch-version.yml', cleanVersion); +} catch (error) { + core.setFailed(`Error processing version: ${error.message}`); + process.exit(1); +}