Add pull request support for the buildkite to github actions migratio… #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI Checks | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| idl-submodule-points-to-master: | |
| name: IDL submodule points to master | |
| runs-on: ubuntu-latest # uses ubuntu as runner instead of kubernetes like buildkite | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true # ensures git submodules are intialized and updated | |
| - name: Check IDL submodule status (must point to master) | |
| run: make .idl-status | |
| golang-unit-test: | |
| name: Golang unit test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' # version from cadence/docker/buildkite/Dockerfile | |
| - name: Run unit test | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run unit-test bash -c "make .just-build && make cover_profile && ./scripts/github_actions/gen_coverage_metadata.sh .build/coverage/metadata.txt" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-unit-test-coverage | |
| path: | | |
| .build/coverage/*.out | |
| .build/coverage/metadata.txt | |
| golangci-lint-validate-code-is-clean: | |
| name: Golangci lint validate code is clean | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run golint | |
| run: docker compose -f docker/github_actions/docker-compose.yml run coverage-report bash -c "./scripts/github_actions/golint.sh" | |
| golang-integration-test-with-cassandra: | |
| name: Golang integration test with cassandra | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for cassandra | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-cassandra bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-cassandra-running-history-queue-v2: | |
| name: Golang integration test with running history queue v2 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for cassandra running history queue v2 | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-cassandra-queue-v2 bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-running-history-queue-v2-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-cassandra-and-elasticsearch-v7: | |
| name: Golang integration test with cassandra and elasticsearch v7 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for cassandra and elasticsearch v7 | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose-es7.yml run integration-test-cassandra bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-and-elasticsearch-v7-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-cassandra-and-pinot: | |
| name: Golang integration test with cassandra and pinot | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration test with cassandra and pinot | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose-pinot.yml run integration-test-cassandra-pinot bash -c "mkdir -p .build/coverage && make .just-build && go test -timeout 600s -run ^TestPinotIntegrationSuite -tags pinotintegration -count 1 -v -coverprofile=.build/coverage/pinot.out github.com/uber/cadence/host" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-pinot-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-cassandra-with-opensearch-v2: | |
| name: Golang integration test with cassandra with opensearch v2 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for cassandra and opensearch v2 | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose-opensearch2.yml run integration-test-cassandra bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-and-opensearch-v2-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-ndc-test-with-cassandra: | |
| name: Golang integration ndc test with cassandra | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run ndc profile for cassandra | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-ndc-cassandra bash -c "make .just-build && make cover_ndc_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-cassandra-ndc-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-mysql: | |
| name: Golang integration test with mysql | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for mysql | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-mysql bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-mysql-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-ndc-test-with-mysql: | |
| name: Golang integration ndc test with mysql | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run ndc profile for mysql | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-ndc-mysql bash -c "make .just-build && make cover_ndc_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-mysql-ndc-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-postgres: | |
| name: Golang integration test with postgres | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for postgres | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-postgres bash -c "make .just-build && make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-postgres-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-test-with-sqlite: | |
| name: Golang integration test with sqlite | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration profile for sqlite | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-sqlite bash -c "make cover_integration_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-sqlite-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-integration-ndc-test-with-postgres: | |
| name: Golang integration ndc test with postgres | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run ndc profile for postgres | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-ndc-postgres bash -c "make .just-build && make cover_ndc_profile" | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-postgres-ndc-integration-coverage | |
| path: .build/coverage/*.out | |
| golang-async-wf-integration-test-with-kafka: | |
| name: Golang async wf integration test with kafka | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run async wf integration test with kafka | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-async-wf bash -c "make .just-build && go test -timeout 60s -run ^TestAsyncWFIntegrationSuite -tags asyncwfintegration -count 1 -v github.com/uber/cadence/host" | |
| golang-integration-test-with-etcd: | |
| if: github.event_name == 'pull_request' | |
| name: Golang integration test with etcd | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23.4' | |
| - name: Run integration test with etcd | |
| uses: nick-fields/retry@v3 | |
| with: | |
| max_attempts: 2 | |
| timeout_minutes: 30 | |
| command: | | |
| docker compose -f docker/github_actions/docker-compose.yml run integration-test-with-etcd bash -c "make .just-build && make integration_tests_etcd" |