Skip to content
Open
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
116 changes: 116 additions & 0 deletions grafana-pyroscope-1.15.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package:
name: grafana-pyroscope-1.15
version: "1.15.3"
epoch: 0 # CVE-2025-61729
description: Continuous Profiling Platform. Debug performance issues down to a single line of code
copyright:
- license: AGPL-3.0-only

environment:
contents:
packages:
- busybox
- ca-certificates-bundle
- cairo-dev
- go
- node-gyp
- nodejs-20
- pango-dev
- python3
- yarn

pipeline:
- uses: git-checkout
with:
expected-commit: c7f6f34e8b697db6ae09771e983638cfcdb67c1a
repository: https://github.com/grafana/pyroscope
tag: v${{package.version}}

- runs: |
# https://github.com/grafana/pyroscope/blob/3da96b8e449de267d4663e14207b8b272f9edc6d/.github/workflows/release.yml#L48C14-L48C33
mkdir -p pyroscope/scripts/webpack
mkdir -p pyroscope/public/app
mkdir -p pyroscope/public/templates
cp yarn.lock package.json tsconfig.json ./pyroscope
cd pyroscope
yarn --frozen-lockfile
cp -r ../scripts/webpack ./scripts/
cp -r ../public/app ./public/
cp -r ../public/templates ./public/
yarn build
cp -r ./public/build ../public/build

- uses: go/build
with:
ldflags: |
-X github.com/grafana/pyroscope/pkg/util/build.Branch=main
-X github.com/grafana/pyroscope/pkg/util/build.Version=${{package.version}}
-X github.com/grafana/pyroscope/pkg/util/build.Revision=$(git rev-parse HEAD)
-X github.com/grafana/pyroscope/pkg/util/build.BuildDate=$(date -u -d "@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%Y-%m-%dT%H:%M:%SZ")
output: pyroscope
tags: embedassets
packages: ./cmd/pyroscope

- uses: go/build
with:
ldflags: |
-X github.com/grafana/pyroscope/pkg/util/build.Branch=main
-X github.com/grafana/pyroscope/pkg/util/build.Version=${{package.version}}
-X github.com/grafana/pyroscope/pkg/util/build.Revision=$(git rev-parse HEAD)
-X github.com/grafana/pyroscope/pkg/util/build.BuildDate=$(date -u -d "@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%Y-%m-%dT%H:%M:%SZ")
output: profilecli
packages: ./cmd/profilecli

- runs: |
mkdir -p "${{targets.contextdir}}"/etc/pyroscope
install -Dm755 ./cmd/pyroscope/pyroscope.yaml "${{targets.contextdir}}"/etc/pyroscope/config.yaml

update:
enabled: true
github:
identifier: grafana/pyroscope
strip-prefix: v
tag-filter: v1.15.

test:
environment:
contents:
packages:
- curl
pipeline:
- name: "Verify help and version command output"
runs: |
profilecli -h
profilecli --version | grep -i ${{package.version}}
pyroscope --help
pyroscope -version | grep -i ${{package.version}}
- name: "Start and verify Grafana pyroscope"
uses: test/daemon-check-output
with:
start: |
pyroscope -config.file=/etc/pyroscope/config.yaml
timeout: 30
expected_output: |
Pyroscope started
server listening on addresses
post: |
# check for the ready endpoint - pyroscope needs ~15s after startup to become ready
wait-for-it -t 15 --strict localhost:4040 -- echo "Server is up"

# wait for the service to become fully ready (ingester needs 15s warmup)
for i in $(seq 1 30); do
if curl -sf http://localhost:4040/ready; then
echo "Service is ready"
break
fi
echo "Waiting for ready... attempt $i"
sleep 1
done

# check for the metrics endpoint
curl -s http://localhost:4040/metrics | grep -i "pyroscopedb_block_opening_duration_bucket"

PROFILECLI_URL=http://localhost:4040 profilecli query series --query='{service_name="pyroscope"}' | grep -i "pyroscope"

# check for the UI endpoint
curl -L http://localhost:4040/ui | grep -i "Grafana Pyroscope"
Loading