name: Random Operations Test on: schedule: # * is a special character in YAML so you have to quote this string # ┌───────────── minute (0 - 59) # │ ┌───────────── hour (0 - 23) # │ │ ┌───────────── day of the month (1 - 31) # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) - cron: '23 */2 * * *' # runs every 2 hours workflow_dispatch: inputs: random_seed: type: number description: 'The random seed' required: false default: 0 num_operations: type: number description: "The number of operations to test" default: 250 defaults: run: shell: bash -euxo pipefail {0} permissions: {} env: DEFAULT_PG_VERSION: 16 PLATFORM: neon-captest-new AWS_DEFAULT_REGION: eu-central-1 jobs: run-random-rests: env: POSTGRES_DISTRIB_DIR: /tmp/neon/pg_install runs-on: small permissions: id-token: write statuses: write strategy: fail-fast: false matrix: pg-version: [16, 17] container: image: ghcr.io/neondatabase/build-tools:pinned-bookworm credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} options: --init steps: - name: Harden the runner (Audit all outbound calls) uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 with: egress-policy: audit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Download Neon artifact uses: ./.github/actions/download with: name: neon-${{ runner.os }}-${{ runner.arch }}-release-artifact path: /tmp/neon/ prefix: latest aws-oidc-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }} - name: Run tests uses: ./.github/actions/run-python-test-set with: build_type: remote test_selection: random_ops run_in_parallel: false extra_params: -m remote_cluster pg_version: ${{ matrix.pg-version }} aws-oidc-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }} env: NEON_API_KEY: ${{ secrets.NEON_STAGING_API_KEY }} RANDOM_SEED: ${{ inputs.random_seed }} NUM_OPERATIONS: ${{ inputs.num_operations }} - name: Create Allure report if: ${{ !cancelled() }} id: create-allure-report uses: ./.github/actions/allure-report-generate with: store-test-results-into-db: true aws-oidc-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }} env: REGRESS_TEST_RESULT_CONNSTR_NEW: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}