name: 'Run Tests' description: 'Runs the preflight checks and integration tests.' inputs: gemini_api_key: description: 'The API key for running integration tests.' required: true working-directory: description: 'The working directory to run the tests in.' required: false default: '.' runs: using: 'composite' steps: - name: '📝 Print Inputs' shell: 'bash' env: JSON_INPUTS: '${{ toJSON(inputs) }}' run: 'echo "$JSON_INPUTS"' - name: 'Install system dependencies' if: "runner.os == 'Linux'" run: | sudo apt-get update -qq && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq bubblewrap # Ubuntu 24.04+ requires this to allow bwrap to function in CI sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 || true shell: 'bash' - name: 'Run Tests' env: GEMINI_API_KEY: '${{ inputs.gemini_api_key }}' working-directory: '${{ inputs.working-directory }}' run: |- echo "::group::Build" npm run build echo "::endgroup::" echo "::group::Unit Tests" npm run test:ci echo "::endgroup::" echo "::group::Integration Tests (no sandbox)" npm run test:integration:sandbox:none echo "::endgroup::" echo "::group::Integration Tests (docker sandbox)" npm run test:integration:sandbox:docker echo "::endgroup::" shell: 'bash'