name: lint and test on: push: branches: ["*"] paths-ignore: - '**/*.md' pull_request: branches: ["*"] paths-ignore: - '**/*.md' concurrency: group: ${{ github.ref }} cancel-in-progress: true jobs: golangci: if: github.repository == 'twmb/franz-go' runs-on: ubuntu-latest name: "golangci-lint on amd64" steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: 1.21.3 - uses: golangci/golangci-lint-action@v3 with: version: latest args: --timeout=5m integration-test-kafka: if: github.repository == 'twmb/franz-go' needs: golangci runs-on: ubuntu-latest name: "integration test kafka" container: golang:1.21.3 services: kafka: image: bitnami/kafka:latest ports: - 9092:9092 env: KAFKA_ENABLE_KRAFT: yes KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093 KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093 KAFKA_CFG_TRANSACTION_PARTITION_VERIFICATION_ENABLE: false # Set this to "PLAINTEXT://127.0.0.1:9092" if you want to run this container on localhost via Docker KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_NODE_ID: 1 ALLOW_PLAINTEXT_LISTENER: yes KAFKA_KRAFT_CLUSTER_ID: XkpGZQ27R3eTl3OdTm2LYA # 16 byte base64-encoded UUID steps: - uses: actions/checkout@v3 - run: go test ./... env: KGO_TEST_RF: 1 KGO_SEEDS: kafka:9092 KGO_TEST_STABLE_FETCH: true integration-test-redpanda: if: github.repository == 'twmb/franz-go' needs: golangci runs-on: ubuntu-latest name: "integration test redpanda" container: golang:1.21.3 services: redpanda: image: redpandadata/redpanda ports: - 9092:9092 env: REDPANDA_ADVERTISE_KAFKA_ADDRESS: redpanda:9092 steps: - uses: actions/checkout@v3 - run: go test ./... env: KGO_TEST_RF: 1 KGO_SEEDS: redpanda:9092