Skip to content

Add pull request support for the buildkite to github actions migratio… #1

Add pull request support for the buildkite to github actions migratio…

Add pull request support for the buildkite to github actions migratio… #1

Workflow file for this run

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"