Skip to content

release: 26.5.0

release: 26.5.0 #557

Workflow file for this run

on:
pull_request:
branches:
- main
push:
branches:
- main
- release/**
jobs:
build-multiplatform-image-ghcr:
name: build-multiplatform-image-ghcr-${{ matrix.platform }}
if: ${{ github.repository_owner == 'getsentry' }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- os: ubuntu-24.04
platform: amd64
- os: ubuntu-24.04-arm
# we aren't testing on linux/arm64 yet but at least make sure it builds
platform: arm64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Build image
uses: getsentry/action-build-and-push-images@b172ab61a5f7eabd58bd42ce231b517e79947c01
with:
image_name: 'uptime-checker'
platforms: linux/${{ matrix.platform }}
dockerfile_path: './Dockerfile'
build_args: UPTIME_CHECKER_GIT_REVISION=${{ github.event.pull_request.head.sha || github.sha }}
publish_on_pr: true # required for self-hosted-end-to-end runs on pull requests
ghcr: true
google_ar: false
tag_suffix: -${{ matrix.platform }}
# note: nightly will only be tagged if on default branch
tag_nightly: true
tag_latest: false
assemble-ghcr:
needs: [build-multiplatform-image-ghcr]
if: ${{ github.repository_owner == 'getsentry' }}
name: Create multi-platform manifest
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Docker Login
run: docker login --username '${{ github.actor }}' --password-stdin ghcr.io <<< "$GHCR_TOKEN"
env:
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Create multiplatform manifests
run: |
docker buildx imagetools create \
--tag ghcr.io/getsentry/uptime-checker:${{ github.event.pull_request.head.sha || github.sha }} \
ghcr.io/getsentry/uptime-checker:${{ github.event.pull_request.head.sha || github.sha }}-amd64 \
ghcr.io/getsentry/uptime-checker:${{ github.event.pull_request.head.sha || github.sha }}-arm64
- name: Tag nightly
if: ${{ github.ref_name == github.event.repository.default_branch }}
run: |
docker buildx imagetools create \
--tag ghcr.io/getsentry/uptime-checker:nightly \
ghcr.io/getsentry/uptime-checker:${{ github.sha }}-amd64 \
ghcr.io/getsentry/uptime-checker:${{ github.sha }}-arm64
self-hosted-end-to-end:
needs: [build-multiplatform-image-ghcr]
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Run Sentry self-hosted e2e CI
uses: getsentry/self-hosted@871c182cb0a99dc1fad72cc7ce7889b514b0c5f0 # master
with:
project_name: uptime_checker
image_url: ghcr.io/getsentry/uptime-checker:${{ github.event.pull_request.head.sha || github.sha }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
build-image-production:
runs-on: ubuntu-24.04
if: ${{ github.ref_name == github.event.repository.default_branch }}
name: Build and push production images
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Build and push image
uses: getsentry/action-build-and-push-images@b172ab61a5f7eabd58bd42ce231b517e79947c01
with:
image_name: 'uptime-checker'
platforms: linux/amd64
dockerfile_path: './Dockerfile'
build_args: UPTIME_CHECKER_GIT_REVISION=${{ github.sha }}
ghcr: false
google_ar: true
tag_nightly: false
tag_latest: true
google_ar_image_name: us-central1-docker.pkg.dev/sentryio/uptime-checker/image
google_workload_identity_provider: projects/868781662168/locations/global/workloadIdentityPools/prod-github/providers/github-oidc-pool
google_service_account: gha-gcr-push@sac-prod-sa.iam.gserviceaccount.com
- name: Extract debug symbols
run: |
docker build \
--target debug-symbols \
--build-arg UPTIME_CHECKER_GIT_REVISION=${{ github.sha }} \
--output type=local,dest=./debug-out \
-f Dockerfile .
- name: Install sentry-cli
run: curl -sL https://sentry.io/get-cli/ | bash
- name: Upload debug symbols to Sentry
run: scripts/upload-debug-symbols ./debug-out/uptime-checker.debug
env:
SENTRY_ORGS: ${{ secrets.SENTRY_ORGS }}
SENTRY_PROJECTS: ${{ secrets.SENTRY_PROJECTS }}
SENTRY_AUTH_TOKENS: ${{ secrets.SENTRY_AUTH_TOKENS }}