Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# GitHub Actions CI/CD Documentation

This directory contains the GitHub Actions workflows and reusable actions for the FluentDo Agent project. The CI/CD pipeline automates building, testing, packaging, and releasing the agent across multiple platforms.
This directory contains the GitHub Actions workflows and reusable actions for the Agent project. The CI/CD pipeline automates building, testing, packaging, and releasing the agent across multiple platforms.

[![Coverage Status](https://coveralls.io/repos/github/FluentDo/agent/badge.svg)](https://coveralls.io/github/FluentDo/agent)
[![Coverage Status](https://coveralls.io/repos/github/telemetryforge/agent/badge.svg)](https://coveralls.io/github/telemetryforge/agent)

## Table of Contents

Expand Down Expand Up @@ -72,7 +72,7 @@ The CI/CD pipeline is designed to:
- Push of version tags (`v*`)
- Manual workflow dispatch

**Purpose:** Main CI/CD workflow that orchestrates building, testing, and releasing the FluentDo Agent.
**Purpose:** Main CI/CD workflow that orchestrates building, testing, and releasing the Agent.

**Jobs:**

Expand Down Expand Up @@ -100,7 +100,7 @@ The CI/CD pipeline is designed to:

**Outputs:**

- Container images pushed to `ghcr.io/fluentdo/agent`
- Container images pushed to `ghcr.io/telemetryforge/agent`
- Linux packages (DEB, RPM)
- Windows packages (EXE, MSI, ZIP)
- macOS packages (PKG)
Expand Down Expand Up @@ -196,7 +196,7 @@ The CI/CD pipeline is designed to:

**Inputs:**

- `image` - Full image name (default: `ghcr.io/fluentdo/agent`)
- `image` - Full image name (default: `ghcr.io/telemetryforge/agent`)
- `image-tag` - Image tag to test (required)
- `ref` - Repository reference to use (default: `main`)

Expand Down Expand Up @@ -548,8 +548,8 @@ The CI/CD pipeline is designed to:

**Key Features:**

- UBI image promotion to `ghcr.io/fluentdo/agent:version`
- Debian image promotion to `ghcr.io/fluentdo/agent:version-slim`
- UBI image promotion to `ghcr.io/telemetryforge/agent:version`
- Debian image promotion to `ghcr.io/telemetryforge/agent:version-slim`
- Red Hat certification submission
- Skopeo for multi-arch image copying
- Preflight validation before submission
Expand Down Expand Up @@ -873,9 +873,9 @@ Example structure:

Common environment variables used across workflows:

- `FLUENTDO_AGENT_VERSION` - Version being built
- `FLUENTDO_AGENT_IMAGE` - Container image name
- `FLUENTDO_AGENT_TAG` - Container image tag
- `TELEMETRY_FORGE_AGENT_VERSION` - Version being built
- `TELEMETRY_FORGE_AGENT_IMAGE` - Container image name
- `TELEMETRY_FORGE_AGENT_TAG` - Container image tag
- `FLUENT_BIT_BINARY` - Path to Fluent Bit binary for testing
- `FLB_NIGHTLY_BUILD` - Nightly build information
- `VCPKG_BUILD_TYPE` - vcpkg build type (Windows)
Expand Down Expand Up @@ -970,6 +970,6 @@ When adding new workflows:

For issues or questions:

- GitHub Issues: <https://github.com/FluentDo/agent/issues>
- GitHub Issues: <https://github.com/telemetryforge/agent/issues>
- Documentation: <https://fluent.do>
- Email: <info@fluent.do>
49 changes: 18 additions & 31 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
# Look for the default line in the Dockerfile
id: set-version
run: |
VERSION=$(grep "ARG FLUENTDO_AGENT_VERSION=" Dockerfile.ubi | cut -d '=' -s -f 2 -)
VERSION=$(grep "ARG TELEMETRY_FORGE_AGENT_VERSION=" Dockerfile.ubi | cut -d '=' -s -f 2 -)
# For releases we use the tag
if [[ '${{ steps.set-build-type.outputs.build-type }}' == 'release' ]]; then
TAG_NAME=${GITHUB_REF#refs/tags/}
Expand Down Expand Up @@ -106,8 +106,8 @@ jobs:
fail-fast: false
matrix:
image-base:
- "ghcr.io/fluentdo/agent/ubi"
- "ghcr.io/fluentdo/agent/debian"
- "ghcr.io/telemetryforge/agent/ubi"
- "ghcr.io/telemetryforge/agent/debian"
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -174,8 +174,8 @@ jobs:
ref: ${{ github.ref }}
nightly-build-info: ${{ needs.get-meta.outputs.date }}

# We want to copy the UBI image to ghcr.io/fluentdo/agent:version and
# the distroless image to ghcr.io/fluentdo/agent:version-slim
# We want to copy the UBI image to ghcr.io/telemetryforge/agent:version and
# the distroless image to ghcr.io/telemetryforge/agent:version-slim
copy-common-images:
# Only run for releases to reduce unnecessary load on the registry
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
Expand Down Expand Up @@ -211,8 +211,8 @@ jobs:
fail-fast: false
matrix:
image-base:
- "ghcr.io/fluentdo/agent/ubi"
- "ghcr.io/fluentdo/agent/debian"
- "ghcr.io/telemetryforge/agent/ubi"
- "ghcr.io/telemetryforge/agent/debian"

test-packages:
name: Test packages
Expand Down Expand Up @@ -248,7 +248,7 @@ jobs:
- build-image
- test-containers
# TODO: remove once failures are resolved to ensure auto-release job still goes ahead with latest commit
# https://github.com/FluentDo/agent/issues/73
# https://github.com/telemetryforge/agent/issues/73
# - test-packages
# Add additional jobs here as required that must complete
runs-on: ubuntu-latest
Expand Down Expand Up @@ -284,8 +284,8 @@ jobs:
contents: write
id-token: write
env:
UBI_IMAGE_NAME: ghcr.io/fluentdo/agent/ubi
DISTROLESS_IMAGE_NAME: ghcr.io/fluentdo/agent/debian
UBI_IMAGE_NAME: ghcr.io/telemetryforge/agent/ubi
DISTROLESS_IMAGE_NAME: ghcr.io/telemetryforge/agent/debian
TAG: ${{ needs.build-image.outputs.version }}
steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -378,15 +378,15 @@ jobs:
--remove-signatures \
--src-creds "${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}" \
"docker://${{ env.UBI_IMAGE_NAME }}:${{ env.TAG }}" \
"oci-archive:output/fluentdo-agent-container.tar"
"oci-archive:output/telemetryforge-agent-container.tar"
skopeo copy \
--all \
--remove-signatures \
--src-creds "${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}" \
"docker://${{ env.DISTROLESS_IMAGE_NAME }}:${{ env.TAG }}" \
"oci-archive:output/fluentdo-agent-container-slim.tar"
tar -czvf output/fluentdo-agent-container.tar.gz output/fluentdo-agent-container.tar output/fluentdo-agent-container-slim.tar
rm -f output/fluentdo-agent-container.tar output/fluentdo-agent-container-slim.tar
"oci-archive:output/telemetryforge-agent-container-slim.tar"
tar -czvf output/telemetryforge-agent-container.tar.gz output/telemetryforge-agent-container.tar output/telemetryforge-agent-container-slim.tar
rm -f output/telemetryforge-agent-container.tar output/telemetryforge-agent-container-slim.tar
shell: bash

- name: Construct release info
Expand Down Expand Up @@ -426,7 +426,7 @@ jobs:
with:
append_body: true
body: |
Fluent Do Agent release for ${{ github.ref_name }} version
Telemetry Forge Agent release for ${{ github.ref_name }} version

Version: ${{ needs.get-meta.outputs.version }}
OSS Version: ${{ needs.get-meta.outputs.oss-version }}
Expand All @@ -443,7 +443,7 @@ jobs:
*.spdx
output/*.json
deliverables.tar.gz
output/fluentdo-agent-container.tar.gz
output/telemetryforge-agent-container.tar.gz
output/package-macos-*
output/package-windows-*
fail_on_unmatched_files: false
Expand All @@ -462,28 +462,15 @@ jobs:
uses: google-github-actions/upload-cloud-storage@v3
with:
path: output/
destination: fluentdo-agent-${{ needs.get-meta.outputs.build-type }}/${{ needs.get-meta.outputs.version }}/
destination: telemetryforge-agent-${{ needs.get-meta.outputs.build-type }}/${{ needs.get-meta.outputs.version }}/

update-docs:
needs:
- get-meta
- release
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
name: Update documentation on release
uses: fluentdo/documentation/.github/workflows/call-add-mapping-version.yaml@main
uses: telemetryforge/documentation/.github/workflows/call-add-mapping-version.yaml@main
with:
agent-version: ${{ needs.get-meta.outputs.version }}
oss-version: ${{ needs.get-meta.outputs.oss-version }}

update-homebrew:
name: Update homebrew on release
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
needs:
- get-meta
- release
- build-macos
uses: fluentdo/homebrew-fluentdo-agent/.github/workflows/call-update-homebrew.yaml@main
with:
version: ${{ github.ref_name }}
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
30 changes: 15 additions & 15 deletions .github/workflows/call-build-containers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:
description: The base name to use for images.
required: false
type: string
default: "ghcr.io/fluentdo/agent"
default: "ghcr.io/telemetryforge/agent"
definition:
description: The Dockerfile definition to use.
required: false
Expand All @@ -26,7 +26,7 @@ on:
description: The Dockerhub username to use for authenticated pulls.
required: false
type: string
default: "fluentdo"
default: "telemetryforge"
amd-runner-label:
description: The label to use for the runner (if not specified then the default ubuntu-latest or equivalent is used).
required: false
Expand Down Expand Up @@ -76,15 +76,15 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6
with:
repository: FluentDo/agent
repository: telemetryforge/agent
ref: ${{ inputs.ref }}
fetch-depth: 0

- name: Ensure we apply specific version from tag
run: ./scripts/setup-code.sh
shell: bash
env:
FLUENTDO_AGENT_VERSION: ${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION: ${{ inputs.version }}

- name: Deltas
run: git diff
Expand Down Expand Up @@ -120,15 +120,15 @@ jobs:
labels: |
build-date={{date 'YYYYMMDD-HHmmss'}}
version=${{ inputs.version }}
io.k8s.description=FluentDo Agent is a stable, secure by default, OSS (Apache-licensed) downstream distribution of Fluent Bit with predictable releases and long-term supported versions for 24 months.
io.k8s.display-name=FluentDo Agent
io.openshift.tags=observability,logging,log-aggregation,fluentdo,fluent-bit
url=https://fluent.do
vendor=FluentDo at https://fluent.do
maintainer=FluentDo via info@fluent.do
name=FluentDo Agent
description=FluentDo Agent is a stable, secure by default, OSS (Apache-licensed) downstream distribution of Fluent Bit with predictable releases and long-term supported versions for 24 months.
summary=FluentDo Agent is an Enterprise hardened version of Fluent Bit
io.k8s.description=Telemetry Forge Agent is a stable, secure by default, OSS (Apache-licensed) downstream distribution of Fluent Bit with predictable releases and long-term supported versions for 24 months.
io.k8s.display-name=Telemetry Forge Agent
io.openshift.tags=observability,logging,log-aggregation,telemetryforge,fluent-bit
url=https://telemetryforge.io
vendor=Telemetry Forge at https://telemetryforge.io
maintainer=Telemetry Forge via info@fluent.do
name=Telemetry Forge Agent
description=Telemetry Forge Agent is a stable, secure by default, OSS (Apache-licensed) downstream distribution of Fluent Bit with predictable releases and long-term supported versions for 24 months.
summary=Telemetry Forge Agent is an Enterprise hardened version of Fluent Bit

- name: Build and push by digest the standard ${{ matrix.target }} image
id: production
Expand All @@ -143,7 +143,7 @@ jobs:
# Make sure we push our custom labels to the image
labels: ${{ steps.meta.outputs.labels }}
build-args: |
FLUENTDO_AGENT_VERSION=${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION=${{ inputs.version }}
provenance: false

- name: Export ${{ matrix.target }} digest
Expand Down Expand Up @@ -199,7 +199,7 @@ jobs:
platforms: linux/amd64
target: test
build-args: |
FLUENTDO_AGENT_VERSION=${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION=${{ inputs.version }}
provenance: false
push: true
tags: ${{ steps.meta-test.outputs.tags }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/call-build-linux-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@ jobs:
uses: actions/checkout@v6
with:
ref: ${{ inputs.ref }}
repository: FluentDo/agent
repository: telemetryforge/agent

- name: Ensure we apply specific version from tag
run: ./scripts/setup-code.sh
shell: bash
env:
FLUENTDO_AGENT_VERSION: ${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION: ${{ inputs.version }}

- name: Deltas
run: git diff
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/call-build-macos-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
uses: actions/checkout@v6
with:
ref: ${{ inputs.ref }}
repository: FluentDo/agent
repository: telemetryforge/agent

- name: Install dependencies
run: |
Expand All @@ -65,7 +65,7 @@ jobs:
run: ./scripts/setup-code.sh
shell: bash
env:
FLUENTDO_AGENT_VERSION: ${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION: ${{ inputs.version }}

- name: Ensure we have a build directory
run: mkdir -p source/build
Expand Down Expand Up @@ -93,13 +93,13 @@ jobs:
- name: Check linkage
continue-on-error: true
run: |
DYLD_PRINT_LIBRARIES=1 DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 DYLD_PRINT_RPATHS=1 bin/fluentdo-agent --dry-run
DYLD_PRINT_LIBRARIES=1 DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 DYLD_PRINT_RPATHS=1 bin/telemetryforge-agent --dry-run
working-directory: source/build

- name: Upload build packages
uses: actions/upload-artifact@v6
with:
name: package-macos-${{ matrix.config.package }}
path: |
source/build/fluentdo-agent-*.pkg
source/build/telemetryforge-agent-*.pkg
if-no-files-found: error
14 changes: 7 additions & 7 deletions .github/workflows/call-build-windows-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ jobs:
uses: actions/checkout@v6
with:
ref: ${{ inputs.ref }}
repository: FluentDo/agent
repository: telemetryforge/agent

- name: Ensure we apply specific version from tag
run: ./scripts/setup-code.sh
shell: bash
env:
FLUENTDO_AGENT_VERSION: ${{ inputs.version }}
TELEMETRY_FORGE_AGENT_VERSION: ${{ inputs.version }}

- name: Deltas
run: git diff
Expand Down Expand Up @@ -144,8 +144,8 @@ jobs:
-DFLB_LIBYAML_DIR='C:\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}' `
-DLIBGIT2_INCLUDE_DIR='C:\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}\include' `
-DLIBGIT2_LIBRARY='C:\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}\lib\git2.lib' `
-DFLUENTDO_AGENT_DISTRO=${{ matrix.config.distro }} `
-DFLUENTDO_AGENT_PACKAGE_TYPE=PACKAGE `
-DTELEMETRY_FORGE_AGENT_DISTRO=${{ matrix.config.distro }} `
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE=PACKAGE `
-DFLB_IN_CALYPTIA_FLEET=Off `
-DFLB_IN_DOCKER=Off `
-DFLB_IN_DOCKER_EVENTS=Off `
Expand Down Expand Up @@ -185,7 +185,7 @@ jobs:
with:
name: package-windows-${{ matrix.config.arch }}
path: |
source/build/fluentdo-agent-*.exe
source/build/fluentdo-agent-*.msi
source/build/fluentdo-agent-*.zip
source/build/telemetryforge-agent-*.exe
source/build/telemetryforge-agent-*.msi
source/build/telemetryforge-agent-*.zip
if-no-files-found: error
8 changes: 4 additions & 4 deletions .github/workflows/call-publish-release-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ on:
github-token:
required: true
env:
UBI_IMAGE_NAME: ghcr.io/fluentdo/agent/ubi
DISTROLESS_IMAGE_NAME: ghcr.io/fluentdo/agent/debian
UBI_IMAGE_NAME: ghcr.io/telemetryforge/agent/ubi
DISTROLESS_IMAGE_NAME: ghcr.io/telemetryforge/agent/debian
jobs:
promote-ghcr-images:
name: Promote container images to top-level ghcr.io registries
Expand All @@ -20,7 +20,7 @@ jobs:
contents: read
packages: write
env:
OUTPUT_IMAGE_NAME: ghcr.io/fluentdo/agent
OUTPUT_IMAGE_NAME: ghcr.io/telemetryforge/agent
TAG: ${{ inputs.version }}
steps:
- name: Log in to the Container registry
Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:
id-token: write
env:
# We must match up the official image we have used for publishing upstream
RHEL_SOURCE_IMAGE: ghcr.io/fluentdo/agent
RHEL_SOURCE_IMAGE: ghcr.io/telemetryforge/agent
needs:
# We must use the top-level image here - see above
- promote-ghcr-images
Expand Down
Loading
Loading