name: CLI E2E Tests on: push: branches: [main] paths: - "**.go" - go.mod - go.sum - Makefile - scripts/fetch_meta.py - tests/cli_e2e/** - .github/workflows/cli-e2e.yml pull_request: branches: [main] paths: - "**.go" - go.mod - go.sum - Makefile - scripts/fetch_meta.py - tests/cli_e2e/** - .github/workflows/cli-e2e.yml workflow_dispatch: permissions: contents: read actions: read checks: write jobs: cli-e2e: # Forked pull_request runs do not receive repository/org secrets except GITHUB_TOKEN. if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork }} runs-on: ubuntu-latest env: TEST_BOT1_APP_ID: ${{ secrets.TEST_BOT1_APP_ID }} TEST_BOT1_APP_SECRET: ${{ secrets.TEST_BOT1_APP_SECRET }} steps: - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 with: go-version-file: go.mod - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: '3.x' - name: Build lark-cli run: make build - name: Configure bot credentials run: | if [ -z "$TEST_BOT1_APP_ID" ] || [ -z "$TEST_BOT1_APP_SECRET" ]; then echo "::error::Missing required secrets: TEST_BOT1_APP_ID / TEST_BOT1_APP_SECRET" exit 1 fi printf '%s\n' "$TEST_BOT1_APP_SECRET" | ./lark-cli config init --app-id "$TEST_BOT1_APP_ID" --app-secret-stdin - name: Run CLI E2E tests env: LARK_CLI_BIN: ${{ github.workspace }}/lark-cli run: | packages=$(go list ./tests/cli_e2e/... | grep -v '^github.com/larksuite/cli/tests/cli_e2e$' | grep -v '/demo$') if [ -z "$packages" ]; then echo "No CLI E2E packages to test after exclusions." exit 1 fi # gotestsum requires --packages when --rerun-fails is combined with go test args after --. packages_arg=$(printf '%s\n' "$packages" | paste -sd' ' -) go run gotest.tools/gotestsum@v1.12.3 --rerun-fails=2 --rerun-fails-max-failures=20 --packages="$packages_arg" --format testname --junitfile cli-e2e-report.xml -- -count=1 -v - name: Publish CLI E2E test report if: ${{ !cancelled() }} uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 with: name: CLI E2E Tests path: cli-e2e-report.xml reporter: java-junit use-actions-summary: true list-suites: all list-tests: all