https://github.com/fluent-ci-templates/buf-pipeline
A ready-to-use CI/CD Pipeline for linting and pushing Protobuf files to the Buf Registry.
https://github.com/fluent-ci-templates/buf-pipeline
cicd dagger deno fluentci pipeline protobuf typescript wasm
Last synced: about 2 months ago
JSON representation
A ready-to-use CI/CD Pipeline for linting and pushing Protobuf files to the Buf Registry.
- Host: GitHub
- URL: https://github.com/fluent-ci-templates/buf-pipeline
- Owner: fluent-ci-templates
- License: mit
- Created: 2023-08-27T05:29:26.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-18T20:33:29.000Z (about 2 years ago)
- Last Synced: 2025-07-10T13:07:55.302Z (12 months ago)
- Topics: cicd, dagger, deno, fluentci, pipeline, protobuf, typescript, wasm
- Language: TypeScript
- Homepage:
- Size: 156 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Buf Pipeline
[](https://pkg.fluentci.io/buf_pipeline)

[](https://dagger.io)
[](https://jsr.io/@fluentci/buf)
[](https://codecov.io/gh/fluent-ci-templates/buf-pipeline)
[](https://github.com/fluent-ci-templates/buf-pipeline/actions/workflows/ci.yml)
A ready-to-use CI/CD Pipeline for linting and pushing Protobuf files to the [Buf](https://buf.build/) Registry.
## 🚀 Usage
Run the following command in your project:
```bash
fluentci run buf_pipeline
```
Or, if you want to use it as a template:
```bash
fluentci init -t buf
```
This will create a `.fluentci` folder in your project.
Now you can run the pipeline with:
```bash
fluentci run .
```
## 🧩 Dagger Module
Use as a [Dagger](https://dagger.io) Module:
```bash
dagger install github.com/fluent-ci-templates/buf-pipeline@main
```
Call a function from this module:
```bash
dagger call format --src .
dagger call lint --src .
dagger call push --src . --token env:BUF_TOKEN
```
## 🛠️ Environment variables
| Variable | Description |
| --------- | ------------------------ |
| BUF_TOKEN | The Buf Registry token. |
## ✨ Jobs
| Job | Description |
| ------ | --------------------------------------------- |
| lint | Lint your Protobuf files with buf. |
| format | Format your Protobuf files with buf. |
| push | Push your Protobuf files to the Buf Registry. |
```typescript
push(
src: Directory | string,
token: Secret | string
): Promise
format(
src: Directory | string
): Promise
lint(src: Directory | string): Promise
```
## 👨💻 Programmatic usage
You can also use this pipeline programmatically:
```ts
import { lint, push } from "jsr:@fluentci/buf";
await lint(".");
await push(".", Deno.env.get("BUF_TOKEN")!);
```