name: start testground description: setup a local testground instance inputs: testground_endpoint: required: false default: '' testground_repository: required: false default: 'testground/testground' testground_ref: required: false default: 'edge' runs: using: "composite" steps: # Default setup when we use the testground_ref == edge. - name: Load testground if: ${{ inputs.testground_ref == 'edge' }} shell: bash run: | for i in 1 2 3; do echo "=== Attempt $i ===" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/testground/testground/master/install.sh)" && \ exit 0 sleep 10 done exit 1 # Custom setup (slower) when we use a different testground_ref - name: Checkout testground if: ${{ inputs.testground_ref != 'edge' }} uses: actions/checkout@v2 with: path: testground repository: ${{ inputs.testground_repository }} ref: ${{ inputs.testground_ref }} - name: Setup Go if: ${{ inputs.testground_ref != 'edge' }} uses: actions/setup-go@v3 with: cache: true go-version-file: 'testground/go.mod' cache-dependency-path: testground/go.sum - name: Install testground if: ${{ inputs.testground_ref != 'edge' }} run: make install || make install || make install # 3 retries in case of network drops. working-directory: testground shell: bash - name: Run the daemon or configure the client shell: bash env: TESTGROUND_ENDPOINT: ${{ inputs.testground_endpoint }} run: | if [[ ! -z "${TESTGROUND_ENDPOINT}" ]]; then mkdir -p ~/testground/; cat <> ~/testground/.env.toml [client] endpoint = "${TESTGROUND_ENDPOINT}" EOF else mkdir -p ~/testground/; cat <> ~/testground/.env.toml [daemon.scheduler] task_timeout_min = 60 EOF testground daemon > testground.out 2> testground.err & fi; - name: Check testground daemon health run: echo "Waiting for Testground to launch on 8042..."; while ! nc -z localhost 8042; do sleep 1; done; echo "Testground launched"; testground healthcheck --runner local:docker --fix; shell: bash