Create shared sources directory for ext/
#17446
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: System Tests | |
| 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: | |
| branches: | |
| - master | |
| workflow_dispatch: {} | |
| schedule: | |
| - 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Changes | |
| uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
| id: changes | |
| with: | |
| filters: | | |
| src: | |
| - '.github/forced-tests-list.cfg' | |
| - '.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 | |
| outputs: | |
| forced_tests: ${{ steps.compute_forced_tests.outputs.forced_tests }} | |
| steps: | |
| - name: Checkout DataDog/dd-trace-rb | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| 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 | |
| - id: compute_forced_tests | |
| run: | | |
| value=$(grep -v -E '^\s*#|^\s*$' packaged/dd-trace-rb/.github/forced-tests-list.cfg | paste -sd ',') | |
| echo "forced_tests=$value" >> "$GITHUB_OUTPUT" | |
| test: | |
| needs: | |
| - build | |
| uses: DataDog/system-tests/.github/workflows/system-tests.yml@7c0b024b7754c95ee31c41eee156e12860cb77b1 # Automated: This reference is automatically updated. | |
| secrets: | |
| TEST_OPTIMIZATION_API_KEY: ${{ secrets.DD_API_KEY }} # key used to pushed test results to test optim | |
| DD_API_KEY: ${{ secrets.DD_API_KEY }} # key used in tests runs | |
| permissions: | |
| contents: read | |
| id-token: write | |
| packages: write | |
| with: | |
| library: ruby | |
| binaries_artifact: dd-trace-rb | |
| desired_execution_time: 300 # 5 minutes | |
| scenarios_groups: tracer_release | |
| skip_empty_scenarios: true | |
| ref: 7c0b024b7754c95ee31c41eee156e12860cb77b1 # Automated: This reference is automatically updated. | |
| force_execute: ${{ needs.build.outputs.forced_tests }} | |
| parametric_job_count: 8 | |
| push_to_test_optimization: true | |
| complete: | |
| name: System Tests (complete) | |
| runs-on: ubuntu-24.04 | |
| needs: | |
| - test | |
| steps: | |
| - run: echo "DONE!" |