Skip to content

Add official system-tests workflow on pushes on master #4774

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 8, 2025
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
127 changes: 127 additions & 0 deletions .github/workflows/system-tests-official.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: System Tests - Official
on: # yamllint disable-line rule:truthy
push:
branches:
- master
# A workaround to trigger the workflow for pull requests from forked repository,
# which does not have access to secrets.
#
# This is also useful for testing the workflow without opening a pull request.
- tmp/*
# pull_request: # To be uncommented if the guild chooses this workflow
# branches:
# - master
workflow_dispatch: {}
# schedule: # To be uncommented if the guild chooses this workflow
# - cron: "00 04 * * 2-6"

# Default permissions for all jobs
permissions: {}

jobs:
changes:
name: Changes
runs-on: ubuntu-24.04
outputs:
changes: ${{ steps.changes.outputs.src }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
filters: |
src:
- '.github/forced-tests-list.json'
- '.github/workflows/**'
- 'lib/**'
- 'ext/**'
- '*.gemspec'
- 'Gemfile'
- '*.gemfile'
- 'lib-injection/**'
- 'tasks/**'

build:
needs:
- changes
if: ${{ needs.changes.outputs.changes == 'true' }}
runs-on: ubuntu-22.04
name: Build artifact
permissions:
packages: write
steps:
- name: Checkout DataDog/dd-trace-rb
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: DataDog/dd-trace-rb
fetch-depth: 2
persist-credentials: false
path: packaged/dd-trace-rb
- name: Upload artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: dd-trace-rb # The name must match the folder name so it extracts to binaries/dd-trace-rb on download
path: packaged

test:
strategy:
fail-fast: false
matrix:
include:
- weblogs: "" # All of them
scenarios: DEFAULT,EVERYTHING_DISABLED,APPSEC_BLOCKING_FULL_DENYLIST,APPSEC_REQUEST_BLOCKING,APPSEC_BLOCKING,GRAPHQL_APPSEC
- weblogs: rack,rails70
scenarios: |
APPSEC_API_SECURITY,
APPSEC_AUTO_EVENTS_EXTENDED,
APPSEC_CORRUPTED_RULES,
APPSEC_CUSTOM_OBFUSCATION,
APPSEC_CUSTOM_RULES,
APPSEC_LOW_WAF_TIMEOUT,
APPSEC_MISSING_RULES,
APPSEC_RATE_LIMITER,
APPSEC_RULES_MONITORING_WITH_ERRORS,
APPSEC_STANDALONE,
CROSSED_TRACING_LIBRARIES,
DEBUGGER_PII_REDACTION,
DEBUGGER_PROBES_SNAPSHOT,
DEBUGGER_PROBES_STATUS,
INTEGRATIONS,
PROFILING,
REMOTE_CONFIG_MOCKED_BACKEND_ASM_DD,
REMOTE_CONFIG_MOCKED_BACKEND_ASM_DD_NOCACHE,
REMOTE_CONFIG_MOCKED_BACKEND_ASM_FEATURES,
REMOTE_CONFIG_MOCKED_BACKEND_ASM_FEATURES_NOCACHE,
SAMPLING,
SCA_STANDALONE,
TELEMETRY_APP_STARTED_PRODUCTS_DISABLED,
TELEMETRY_DEPENDENCY_LOADED_TEST_FOR_DEPENDENCY_COLLECTION_DISABLED,
TELEMETRY_LOG_GENERATION_DISABLED,
TELEMETRY_METRIC_GENERATION_DISABLED
needs:
- build
uses: DataDog/system-tests/.github/workflows/system-tests.yml@8ff6c41624103d83d384e0cf3241ec12e4984800 # Automated: This reference is automatically updated.
secrets: inherit # zizmor: ignore[secrets-inherit]
permissions:
contents: read
packages: write
with:
library: ruby
binaries_artifact: dd-trace-rb
desired_execution_time: 300 # 5 minutes
scenarios: ${{ matrix.scenarios }}
weblogs: ${{ matrix.weblogs }}
skip_empty_scenarios: true
ref: 8ff6c41624103d83d384e0cf3241ec12e4984800 # Automated: This reference is automatically updated.

complete:
name: System Tests (complete)
runs-on: ubuntu-24.04
needs:
- test
steps:
- run: echo "DONE!"
12 changes: 12 additions & 0 deletions .github/workflows/update-system-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ jobs:
PATTERN: '(\s*SYSTEM_TESTS_REF:\s+)(\S+)(\s+# Automated:.*)'
REF: ${{ steps.system-test-ref.outputs.commit }}

- run: .github/scripts/update_reference.sh
env:
TARGET: ".github/workflows/system-tests-official.yml"
PATTERN: '(system-tests.yml@)(\S+)(\s+# Automated:.*)'
REF: ${{ steps.system-test-ref.outputs.commit }}

- run: .github/scripts/update_reference.sh
env:
TARGET: ".github/workflows/system-tests-official.yml"
PATTERN: '(\s+ref: )(\S+)(\s+# Automated:.*)'
REF: ${{ steps.system-test-ref.outputs.commit }}

- run: git diff --color=always

- name: Generate GitHub App Token
Expand Down
Loading