Skip to content

Use new docker compose #189

Use new docker compose

Use new docker compose #189

Workflow file for this run

name: Tests
on:
pull_request:
paths-ignore:
- 'README.md'
push:
branches:
- main
paths-ignore:
- 'README.md'
permissions:
contents: read
pull-requests: read
checks: write
concurrency:
group: tests-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build provider
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- run: go mod download
- run: go build -v .
- name: Run linters
uses: golangci/golangci-lint-action@v3.7.0
with:
version: latest
generate:
name: Generate docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- run: go generate ./...
- name: git diff
run: |
git diff --compact-summary --exit-code || \
(echo; echo "Unexpected difference in directories after code generation. Run 'go generate ./...' command and commit."; exit 1)
testacc:
name: Acceptance tests (tf=${{ matrix.terraform }},ch=${{ matrix.clickhouse-version }})
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: ${{ github.event_name != 'pull_request' }}
matrix:
terraform:
- '1.7.*'
clickhouse-version:
- '24.1'
- '24.2'
- '24.3'
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- name: Prepare for tests
env:
CLICKHOUSE_VERSION: ${{ matrix.clickhouse-version }}
run: |
make init-config
make chup
- name: Run acceptance tests
timeout-minutes: 15
env:
TF_CLI_CONFIG_FILE: ${{ github.workspace }}/.terraformrc
run: make testacc
testsql:
name: SQL tests (tf=${{ matrix.terraform }},protocol=${{ matrix.clickhouse-protocol }},ch=${{ matrix.clickhouse-version }})
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: ${{ github.event_name != 'pull_request' }}
matrix:
terraform:
- '1.7.*'
clickhouse-protocol:
- 'native'
- 'http'
clickhouse-version:
- '24.1'
- '24.2'
- '24.3'
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Prepare for tests
run: |
make init-config
make build
pip install -r tests/requirements.txt
- name: Pull ClickHouse Docker image
run: docker pull clickhouse/clickhouse-server:${{ matrix.clickhouse-version }}
- name: Run SQL tests
timeout-minutes: 15
env:
TF_CLI_CONFIG_FILE: ${{ github.workspace }}/.terraformrc
TESTS_TF_CH_PROTOCOL: ${{ matrix.clickhouse-protocol }}
TESTS_TF_CH_CLICKHOUSE_VERSION: ${{ matrix.clickhouse-version }}
run: make testsql