Skip to content

Migrate from Standard pprof to Pyroscope for Continuous Profiling (#2… #5

Migrate from Standard pprof to Pyroscope for Continuous Profiling (#2…

Migrate from Standard pprof to Pyroscope for Continuous Profiling (#2… #5

Workflow file for this run

name: ci
on:
push:
branches:
- main
- r[0-9]+ # Trigger builds after a push to weekly branches
pull_request:
concurrency:
# Cancel any running workflow for the same branch when new commits are pushed.
# We group both by ref_name (available when CI is triggered by a push to a branch/tag)
# and head_ref (available when CI is triggered by a PR).
group: "${{ github.ref_name }}-${{ github.head_ref }}"
cancel-in-progress: true
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.21.3
- name: Format
run: make fmt check/unstaged-changes
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.21.3
- name: Go Mod
run: make check/go/mod
- name: Test
run: make go/test
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.21.3
- name: Run linter
run: make lint
- name: Check helm manifests
run: make helm/check check/unstaged-changes
test-docs:
runs-on: ubuntu-latest
steps:
- name: "Check out code"
uses: "actions/checkout@v3"
- name: "Test docs"
run: make docs/test
doc-validator:
runs-on: "ubuntu-latest"
container:
image: "grafana/doc-validator:v3.2.0"
steps:
- name: "Checkout code"
uses: "actions/checkout@v3"
- name: "Run doc-validator tool"
run: >
doc-validator
'--skip-checks=^image.+$'
docs/sources
/docs/writers-toolkit
| reviewdog
-f=rdjsonl
--fail-on-error
--filter-mode=nofilter
--name=doc-validator
--reporter=github-pr-review
env:
REVIEWDOG_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
build-image:
if: github.event_name != 'push'
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Set up go
uses: actions/setup-go@v2
with:
go-version: 1.21.3
- uses: actions/setup-node@v3
with:
node-version: lts/hydrogen
cache: yarn
- name: Build image Pyroscope
run: make docker-image/pyroscope/build "BUILDX_ARGS=--cache-from=type=gha --cache-to=type=gha"
build-push:
if: github.event_name == 'push' && github.repository == 'grafana/pyroscope'
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Set up go
uses: actions/setup-go@v2
with:
go-version: 1.21.3
- uses: actions/setup-node@v3
with:
node-version: lts/hydrogen
cache: yarn
- name: Login to GCR
uses: docker/login-action@v2
with:
registry: us.gcr.io
username: _json_key
password: ${{ secrets.GCR_JSON_KEY }}
- name: Pyroscope Build & push multi-arch image
id: build-push
run: |
make docker-image/pyroscope/push "BUILDX_ARGS=--cache-from=type=gha --cache-to=type=gha"
deploy-dev-001:
if: github.event_name == 'push' && github.repository == 'grafana/pyroscope'
runs-on: ubuntu-latest
needs: [build-push]
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Get github app token (valid for an hour)
id: app-release
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
repository: grafana/deployment_tools
- name: Deploy to fire-dev-001
run: |
git config --global url."https://x-access-token:$(echo "${GITHUB_TOKEN}" | xargs)@github.com/grafana/deployment_tools".insteadOf "https://github.com/grafana/deployment_tools"
make docker-image/pyroscope/deploy-dev-001
env:
GITHUB_TOKEN: ${{ steps.app-release.outputs.token }}