--- name: "Build & Test" on: push: branches: - "!dependabot/*" - "master" pull_request: branches: [ "*" ] jobs: build: name: "Go Build" runs-on: "ubuntu-latest" steps: - uses: "actions/checkout@v3" - uses: "actions/setup-go@v3" with: go-version: "^1.18" - name: "Build" run: "go build ./cmd/..." unit: name: "Run Unit Tests" runs-on: "ubuntu-latest" steps: - uses: "actions/checkout@v3" - uses: "actions/setup-go@v3" with: go-version: "^1.18" - name: "Run `go test`" run: "go test -race ./..." e2e-mem: name: "E2E Memory Tests" runs-on: "ubuntu-latest" steps: - uses: "actions/checkout@v3" - uses: "actions/setup-go@v3" with: go-version: "^1.18" - name: "Install and configure mochi" run: | go install --tags e2e ./cmd/mochi cat ./dist/example_config.yaml - name: "Run end-to-end tests" run: | mochi --config=./dist/example_config.yaml --debug & pid=$! sleep 2 mochi e2e --debug kill $pid e2e-redis: name: "E2E Redis Tests" runs-on: "ubuntu-latest" services: redis: image: "redis" ports: [ "6379:6379" ] options: "--entrypoint redis-server" steps: - uses: "actions/checkout@v3" - uses: "actions/setup-go@v3" with: go-version: "^1.18" - name: "Install and configure mochi" run: | go install --tags e2e ./cmd/mochi curl -LO https://github.com/jzelinskie/faq/releases/download/0.0.6/faq-linux-amd64 chmod +x faq-linux-amd64 ./faq-linux-amd64 '.mochi.storage = {"config":{"gc_interval":"3m","peer_lifetime":"31m","prometheus_reporting_interval":"1s","redis_broker":"redis://127.0.0.1:6379/0","connect_timeout":"15s","read_timeout":"15s","write_timeout":"15s"},"name":"redis"}' ./dist/example_config.yaml > ./dist/example_redis_config.yaml cat ./dist/example_redis_config.yaml - name: "Run end-to-end tests" run: | mochi --config=./dist/example_redis_config.yaml --debug & pid=$! sleep 2 mochi e2e --debug kill $pid