{"id":27240828,"url":"https://github.com/vdaas/vald-client-ci","last_synced_at":"2026-02-14T02:03:23.355Z","repository":{"id":235755444,"uuid":"790000917","full_name":"vdaas/vald-client-ci","owner":"vdaas","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-10T06:39:40.000Z","size":97,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-21T17:46:02.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdaas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-22T04:42:58.000Z","updated_at":"2025-07-10T06:39:42.000Z","dependencies_parsed_at":"2024-05-20T03:41:53.692Z","dependency_job_id":"2355fa7c-2ecd-488a-b7f0-ba26958eae6d","html_url":"https://github.com/vdaas/vald-client-ci","commit_stats":null,"previous_names":["vdaas/vald-client-ci"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vdaas/vald-client-ci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaas%2Fvald-client-ci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaas%2Fvald-client-ci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaas%2Fvald-client-ci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaas%2Fvald-client-ci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdaas","download_url":"https://codeload.github.com/vdaas/vald-client-ci/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaas%2Fvald-client-ci/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29431593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T22:20:51.549Z","status":"online","status_checked_at":"2026-02-14T02:00:07.626Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-10T19:55:59.508Z","updated_at":"2026-02-14T02:03:23.339Z","avatar_url":"https://github.com/vdaas.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Actions CI workflows, actions for Vald client\n\nThis repository contains common workflows and actions for the following Vald clients.\n\n- [vald-client-go](https://github.com/vdaas/vald-client-go)\n- [vald-client-node](https://github.com/vdaas/vald-client-node)\n- [vald-client-python](https://github.com/vdaas/vald-client-python)\n- [vald-client-java](https://github.com/vdaas/vald-client-java)\n\n## The workflows/actions\n\n### Workflows\n\n- [Sync](./.github/workflows/sync.yaml)\n  - This workflow is designed to handle synchronization with the Vald repository.\n  - It checks for differences between the `main` branch of the Vald client repository and the `main` branch of the Vald repository, and synchronizes API changes.\n  - Additionally, it synchronizes release tags if a release occurs in the Vald repository.\n  - This automation helps maintain alignment and reduces manual effort in keeping repositories synchronized.\n\n- [Release](./.github/workflows/release.yaml)\n  - This workflow is designed to handle the release process, including packaging the Vald client for distribution.\n  - It also handles the publication to external package repositories, ensuring that the released versions are available to the community.\n    - For Python projects, the release is published to [PyPi](https://pypi.org/project/vald-client-python/), allowing Python users to install via `pip`.\n    - For Node.js projects, you can find the release on [npm](https://www.npmjs.com/package/vald-client-node) and install it using `npm install`.\n    - For Java projects, Maven artifacts are available [here](https://central.sonatype.com/artifact/org.vdaas.vald/vald-client-java) for integration into projects.\n\n### Actions\n\n- [E2E](./.github/actions/e2e/action.yaml)\n  - This action is designed to run End-to-End (E2E) tests on GitHub Actions CI.\n  - It sets up a Kubernetes cluster in the CI environment and deploys the Vald to it.\n  - The action then executes E2E tests against the deployed Vald cluster to ensure that the service functions as expected.\n  - This process helps to validate the entire Vald client stack and catch any issues early in the CI pipeline.\n\n## How to use workflows/actions\n\n### workflows\n\n- [Sync](./.github/workflows/sync.yaml)\n\n```yaml\nname: \"Sync Vald\"\non:\n  workflow_dispatch:\n  schedule:\n    - cron: \"*/5 * * * *\"\njobs:\n  sync:\n    uses: vdaas/vald-client-ci/.github/workflows/sync.yaml@main\n    with:\n      client_type: python # go, node, java\n    secrets:\n      CI_USER: ${{ secrets.YOUR_CI_USER }}  # The CI user to be used in your environment\n      CI_TOKEN: ${{ secrets.YOUR_CI_TOKEN }}  # The CI token for accessing the repository in your environment\n      GPG_PRIVATE_KEY: ${{ secrets.YOUR_GPG_PRIVATE_KEY }}  # Your GPG private key for signing\n```\n\n- [Release](./.github/workflows/release.yaml)\n\n```yaml\nname: \"Run release\"\non:\n  push:\n    tags:\n      - '*.*.*'\n      - 'v*.*.*'\n      - '*.*.*-*'\n      - 'v*.*.*-*'\njobs:\n  release:\n    uses: vdaas/vald-client-ci/.github/workflows/release.yaml@main\n    with:\n      client_type: python # go, node, java\n    secrets: inherit\n\n```\n\n### Actions\n\n- [E2E](./.github/actions/e2e/action.yaml)\n\n```yaml\nname: \"Run E2E test\"\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  e2e:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: vdaas/vald-client-ci/.github/actions/e2e@main\n        with:\n          client_type: python # go, node, java\n````\n\n## :warning: Important Notes\n\n### Managing Secrets\n\nBe sure to carefully manage and configure secrets used in these workflows. Improper handling of secrets can lead to security risks.\n\n#### Required Secrets\n\n- `CI_USER`: The username used in CI/CD processes. This user should have appropriate permissions.\n\n- `CI_TOKEN`: The token required for GitHub Actions to access the repository. Make sure it has proper permissions, like repo and workflow.\n\n- `GPG_PRIVATE_KEY`: The GPG private key used for signing, crucial for the release process.\n\n#### Required Secrets for vald-client-python\n\n- `PIP_USERNAME`: The username used to publish packages to PyPi. This is necessary for distributing Python packages via pip.\n\n- `PIP_TOKEN`: The token used for authentication to PyPi, allowing you to publish Python.\n\n#### Required Secrets for vald-client-node\n\n- `NPM_AUTH_TOKEN`: The authentication token for npm, required to publish packages to the npm registry.\n\n#### Required Secrets for vald-client-java\n\n- `GPG_KEYID`: The key ID for GPG, which is used for signing Maven artifacts.\n\n- `GPG_PASSPHRASE`: The passphrase for the GPG key, required when signing artifacts.\n\n- `PGP_PRIVATE_KEY`: The PGP private key used for signing Maven artifacts. This key is crucial for ensuring secure distribution of Java packages.\n\n- `SONATYPE_USERNAME`: The username for accessing the Sonatype repository (like Maven Central), where Java packages are published.\n\n- `SONATYPE_PASSWORD`: The password for the Sonatype repository, used alongside the username for authentication.\n\n### Required `make` Command\n\nThe common workflows in this repository require the use of `make` commands. To ensure proper operation, please implement the following `make` commands in each Vald client repositories:\n\n- `vald/checkout`: Switches branches or tags in the cloned Vald repository. The `VALD_CHECKOUT_REF` variable specifies the desired branch or tag.\n\n- `vald/origin/sha/print`: Prints the SHA of the cloned Vald repository.\n\n- `vald/sha/print`: Prints the SHA managed by the Vald client.\n\n- `vald/sha/update`: Updates the SHA managed by the Vald client.\n\n- `vald/client/version/print`: Prints the Vald client version.\n\n- `vald/client/version/update`: Updates the Vald client version.\n\n- `proto`: Builds the protobuf using the croned Vald repository.\n\n- `test`: Executes tests for the Vald client.\n\n- `ci/deps/install`: Installs dependencies.\n\n- `ci/deps/update`: Updates dependencies.\n\n- `ci/package/prepare`: Prepares packages for publication.\n\n- `ci/package/publish`: Publishes packages to external package repositories.\n\n- `version/go`: Prints the Go version. It is for Go language environment.\n\n- `version/node`: Prints the Node version. It is for Node language environment.\n\n- `version/python`: Prints the Python version. It is for Python language environment.\n\n- `version/java`: Prints the Java version. It is for Java language environment.\n\nThese `make` commands are essential for the proper functioning of the workflows and CI processes in this repository.\n\nEnsure that these commands are correctly implemented in each Vald client repository\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaas%2Fvald-client-ci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdaas%2Fvald-client-ci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaas%2Fvald-client-ci/lists"}