feat: sentry for arm
Some checks failed
Lock closed issues/PRs / lock (push) Has been cancelled
Test / Sentry self-hosted end-to-end tests (push) Has been cancelled
Test / unit tests (push) Has been cancelled
Test / Sentry upgrade test (push) Has been cancelled
Test / integration test v2.19.0 - customizations disabled (push) Has been cancelled
Test / integration test v2.19.0 - customizations enabled (push) Has been cancelled
Test / integration test v2.26.0 - customizations disabled (push) Has been cancelled
Test / integration test v2.26.0 - customizations enabled (push) Has been cancelled
Some checks failed
Lock closed issues/PRs / lock (push) Has been cancelled
Test / Sentry self-hosted end-to-end tests (push) Has been cancelled
Test / unit tests (push) Has been cancelled
Test / Sentry upgrade test (push) Has been cancelled
Test / integration test v2.19.0 - customizations disabled (push) Has been cancelled
Test / integration test v2.19.0 - customizations enabled (push) Has been cancelled
Test / integration test v2.26.0 - customizations disabled (push) Has been cancelled
Test / integration test v2.26.0 - customizations enabled (push) Has been cancelled
Signed-off-by: 小草林(田梓萱) <xcl@xuegao-tzx.top>
This commit is contained in:
16
.github/workflows/enforce-license-compliance.yml
vendored
Normal file
16
.github/workflows/enforce-license-compliance.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Enforce License Compliance
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
enforce-license-compliance:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Enforce License Compliance'
|
||||
uses: getsentry/action-enforce-license-compliance@main
|
||||
with:
|
||||
fossa_api_key: ${{ secrets.FOSSA_API_KEY }}
|
||||
40
.github/workflows/fast-revert.yml
vendored
Normal file
40
.github/workflows/fast-revert.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [labeled]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr:
|
||||
required: true
|
||||
description: pr number
|
||||
co_authored_by:
|
||||
required: true
|
||||
description: '`name <email>` for triggering user'
|
||||
|
||||
# disable all permissions -- we use the PAT's permissions instead
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
revert:
|
||||
runs-on: ubuntu-latest
|
||||
if: |
|
||||
github.event_name == 'workflow_dispatch' || github.event.label.name == 'Trigger: Revert'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.BUMP_SENTRY_TOKEN }}
|
||||
- uses: getsentry/action-fast-revert@v2.0.1
|
||||
with:
|
||||
pr: ${{ github.event.number || github.event.inputs.pr }}
|
||||
co_authored_by: ${{ github.event.inputs.co_authored_by || format('{0} <{1}+{0}@users.noreply.github.com>', github.event.sender.login, github.event.sender.id) }}
|
||||
committer_name: getsentry-bot
|
||||
committer_email: bot@sentry.io
|
||||
token: ${{ secrets.BUMP_SENTRY_TOKEN }}
|
||||
- name: comment on failure
|
||||
run: |
|
||||
curl \
|
||||
--silent \
|
||||
-X POST \
|
||||
-H 'Authorization: token ${{ secrets.BUMP_SENTRY_TOKEN }}' \
|
||||
-d'{"body": "revert failed (conflict? already reverted?) -- [check the logs](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})"}' \
|
||||
https://api.github.com/repositories/${{ github.event.repository.id }}/issues/${{ github.event.number || github.event.inputs.pr }}/comments
|
||||
if: failure()
|
||||
17
.github/workflows/lock.yml
vendored
Normal file
17
.github/workflows/lock.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: 'Lock closed issues/PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '11 3 * * *'
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
lock:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: getsentry/forked-action-lock-threads@master
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-lock-inactive-days: 15
|
||||
issue-lock-reason: ''
|
||||
pr-lock-inactive-days: 15
|
||||
pr-lock-reason: ''
|
||||
16
.github/workflows/pre-commit.yml
vendored
Normal file
16
.github/workflows/pre-commit.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: pre-commit
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.x
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
57
.github/workflows/release.yml
vendored
Normal file
57
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: Release
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: Version to release (optional)
|
||||
required: false
|
||||
force:
|
||||
description: Force a release even when there are release-blockers (optional)
|
||||
required: false
|
||||
schedule:
|
||||
# We want the release to be at 10 or 11am Pacific Time
|
||||
# We also make this an hour after all others such as Sentry,
|
||||
# Snuba, and Relay to make sure their releases finish.
|
||||
- cron: "0 18 15 * *"
|
||||
jobs:
|
||||
release:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-latest
|
||||
name: "Release a new version"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.GH_RELEASE_PAT }}
|
||||
fetch-depth: 0
|
||||
- name: Prepare release
|
||||
id: prepare-release
|
||||
uses: getsentry/action-prepare-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_PAT }}
|
||||
with:
|
||||
version: ${{ github.event.inputs.version }}
|
||||
force: ${{ github.event.inputs.force }}
|
||||
calver: true
|
||||
outputs:
|
||||
release-version: ${{ env.RELEASE_VERSION }}
|
||||
dogfood-release:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-latest
|
||||
name: Create release on self-hosted dogfood instance
|
||||
needs: release
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.GH_RELEASE_PAT }}
|
||||
fetch-depth: 0
|
||||
- uses: getsentry/action-release@v1
|
||||
env:
|
||||
SENTRY_ORG: self-hosted
|
||||
SENTRY_PROJECT: installer
|
||||
SENTRY_URL: https://self-hosted.getsentry.net/
|
||||
SENTRY_AUTH_TOKEN: ${{ secrets.SELF_HOSTED_RELEASE_TOKEN }}
|
||||
with:
|
||||
environment: production
|
||||
version: ${{ needs.release.outputs.release-version }}
|
||||
ignore_empty: true
|
||||
ignore_missing: true
|
||||
159
.github/workflows/test.yml
vendored
Normal file
159
.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1,159 @@
|
||||
name: Test
|
||||
on:
|
||||
# Run CI on all pushes to the master and release/** branches, and on all new
|
||||
# pull requests, and on all pushes to pull requests (even if a pull request
|
||||
# is not against master).
|
||||
push:
|
||||
branches:
|
||||
- "master"
|
||||
- "release/**"
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "0 0,12 * * *"
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
jobs:
|
||||
e2e-test:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-22.04
|
||||
name: "Sentry self-hosted end-to-end tests"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: self-hosted
|
||||
|
||||
- name: End to end tests
|
||||
uses: getsentry/action-self-hosted-e2e-tests@main
|
||||
with:
|
||||
project_name: self-hosted
|
||||
|
||||
unit-test:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-22.04
|
||||
name: "unit tests"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Unit Tests
|
||||
run: ./unit-test.sh
|
||||
|
||||
upgrade-test:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-22.04
|
||||
name: "Sentry upgrade test"
|
||||
env:
|
||||
REPORT_SELF_HOSTED_ISSUES: 0
|
||||
steps:
|
||||
- name: Get latest self-hosted release version
|
||||
run: |
|
||||
LATEST_TAG=$(curl -s https://api.github.com/repos/getsentry/self-hosted/releases/latest | jq -r '.tag_name')
|
||||
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout latest release
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ env.LATEST_TAG }}
|
||||
|
||||
- name: Get Compose
|
||||
run: |
|
||||
# Docker Compose v1 is installed here, remove it
|
||||
sudo rm -f "/usr/local/bin/docker-compose"
|
||||
sudo rm -f "/usr/local/lib/docker/cli-plugins/docker-compose"
|
||||
sudo mkdir -p "/usr/local/lib/docker/cli-plugins"
|
||||
sudo curl -L https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-`uname -s`-`uname -m` -o "/usr/local/lib/docker/cli-plugins/docker-compose"
|
||||
sudo chmod +x "/usr/local/lib/docker/cli-plugins/docker-compose"
|
||||
|
||||
- name: Install ${{ env.LATEST_TAG }}
|
||||
run: ./install.sh
|
||||
|
||||
- name: Checkout current ref
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install current ref
|
||||
run: ./install.sh
|
||||
|
||||
integration-test:
|
||||
if: github.repository_owner == 'getsentry'
|
||||
runs-on: ubuntu-22.04
|
||||
name: integration test ${{ matrix.compose_version }} - customizations ${{ matrix.customizations }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
customizations: ["disabled", "enabled"]
|
||||
compose_version: ["v2.19.0", "v2.26.0"]
|
||||
include:
|
||||
- compose_version: "v2.19.0"
|
||||
compose_path: "/usr/local/lib/docker/cli-plugins"
|
||||
- compose_version: "v2.26.0"
|
||||
compose_path: "/usr/local/lib/docker/cli-plugins"
|
||||
env:
|
||||
COMPOSE_PROJECT_NAME: self-hosted-${{ strategy.job-index }}
|
||||
REPORT_SELF_HOSTED_ISSUES: 0
|
||||
SELF_HOSTED_TESTING_DSN: ${{ vars.SELF_HOSTED_TESTING_DSN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup dev environment
|
||||
run: |
|
||||
pip install -r requirements-dev.txt
|
||||
echo "PY_COLORS=1" >> "$GITHUB_ENV"
|
||||
### pytest-sentry configuration ###
|
||||
if [ "$GITHUB_REPOSITORY" = "getsentry/self-hosted" ]; then
|
||||
echo "PYTEST_SENTRY_DSN=$SELF_HOSTED_TESTING_DSN" >> $GITHUB_ENV
|
||||
echo "PYTEST_SENTRY_TRACES_SAMPLE_RATE=0" >> $GITHUB_ENV
|
||||
|
||||
# This records failures on master to sentry in order to detect flakey tests, as it's
|
||||
# expected that people have failing tests on their PRs
|
||||
if [ "$GITHUB_REF" = "refs/heads/master" ]; then
|
||||
echo "PYTEST_SENTRY_ALWAYS_REPORT=1" >> $GITHUB_ENV
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Get Compose
|
||||
run: |
|
||||
# Always remove `docker compose` support as that's the newer version
|
||||
# and comes installed by default nowadays.
|
||||
sudo rm -f "/usr/local/lib/docker/cli-plugins/docker-compose"
|
||||
# Docker Compose v1 is installed here, remove it
|
||||
sudo rm -f "/usr/local/bin/docker-compose"
|
||||
sudo rm -f "${{ matrix.compose_path }}/docker-compose"
|
||||
sudo mkdir -p "${{ matrix.compose_path }}"
|
||||
sudo curl -L https://github.com/docker/compose/releases/download/${{ matrix.compose_version }}/docker-compose-`uname -s`-`uname -m` -o "${{ matrix.compose_path }}/docker-compose"
|
||||
sudo chmod +x "${{ matrix.compose_path }}/docker-compose"
|
||||
|
||||
- name: Install self-hosted
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 3
|
||||
command: ./install.sh
|
||||
|
||||
- name: Integration Test
|
||||
run: |
|
||||
if [ "${{ matrix.compose_version }}" = "v2.19.0" ]; then
|
||||
pytest --reruns 3 --cov --junitxml=junit.xml _integration-test/ --customizations=${{ matrix.customizations }}
|
||||
else
|
||||
pytest --cov --junitxml=junit.xml _integration-test/ --customizations=${{ matrix.customizations }}
|
||||
fi
|
||||
|
||||
- name: Inspect failure
|
||||
if: failure()
|
||||
run: |
|
||||
docker compose ps
|
||||
docker compose logs
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
slug: getsentry/self-hosted
|
||||
|
||||
- name: Upload test results to Codecov
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/test-results-action@v1
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
Reference in New Issue
Block a user