name: Run Integration Tests on: pull_request: types: [opened, synchronize, reopened, ready_for_review] branches: - master schedule: - cron: "0 2 * * *" concurrency: group: integration-${{ github.head_ref }} cancel-in-progress: true jobs: test_integration: runs-on: ubuntu-latest if: > (github.event_name == 'pull_request' && github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'ci/skip') && !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/') && contains(github.event.pull_request.labels.*.name, 'ci/integrations')) || github.event_name == 'schedule' services: datadog-agent: image: gcr.io/datadoghq/agent:latest ports: - 8126:8126 env: DD_API_KEY: ${{ secrets.DD_API_KEY }} DD_HOSTNAME: "none" DD_INSIDE_CI: "true" steps: - name: Get GitHub App token if: github.event_name == 'pull_request' id: get_token uses: tibdex/github-app-token@v1 with: app_id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} private_key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} repository: DataDog/datadog-api-spec - name: Checkout code uses: actions/checkout@v3 - name: Post pending status check if: github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') uses: DataDog/github-actions/post-status-check@v1.0.0 with: github-token: ${{ steps.get_token.outputs.token }} repo: datadog-api-spec status: pending context: integration - name: Install system zstd run: | sudo apt-get -y install zstd echo "ZSTANDARD_LIBRARY=$(find /usr/lib -iname libzstd.so.1)" >> $GITHUB_ENV - name: Set up Ruby 3.1 uses: ruby/setup-ruby@v1 with: ruby-version: 3.1 bundler-cache: true cache-version: ${{ secrets.CACHE_VERSION }} - name: Install deps run: bundle install - name: Run integration tests run: ./run-tests.sh shell: bash env: CI: "true" DD_AGENT_HOST: localhost DD_ENV: prod DD_SERVICE: datadog-api-client-ruby DD_TAGS: "team:integration-tools-and-libraries" DD_TEST_CLIENT_API_KEY: ${{ secrets.DD_CLIENT_API_KEY }} DD_TEST_CLIENT_APP_KEY: ${{ secrets.DD_CLIENT_APP_KEY }} DD_TRACE_ANALYTICS_ENABLED: "true" RECORD: "none" SLEEP_AFTER_REQUEST: "${{ secrets.SLEEP_AFTER_REQUEST }}" - name: Post failure status check if: failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') uses: DataDog/github-actions/post-status-check@v1.0.0 with: github-token: ${{ steps.get_token.outputs.token }} repo: datadog-api-spec status: failure context: integration - name: Post success status check if: "!failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')" uses: DataDog/github-actions/post-status-check@v1.0.0 with: github-token: ${{ steps.get_token.outputs.token }} repo: datadog-api-spec status: success context: integration