Skip to content

feat: log metrics in deterministic order #800

feat: log metrics in deterministic order

feat: log metrics in deterministic order #800

Workflow file for this run

name: Test
on:
push:
branches:
- master
pull_request:
jobs:
test:
if: "!contains(github.event.head_commit.message, '[ci skip tests]')"
runs-on: ubuntu-20.04
env:
GO111MODULE: on
GOFLAGS: "-mod=vendor"
COVERAGE: "true"
REDIS_URL: "redis://localhost:6379/2"
services:
redis:
image: redis:7.0-alpine
ports: ["6379:6379"]
options: --health-cmd="redis-cli ping" --health-interval 1s --health-timeout 3s --health-retries 30
steps:
- uses: actions/checkout@v4
- name: Install system deps
run: |
sudo apt-get update
sudo apt-get install bison
- uses: actions/cache@v4
with:
path: vendor
key: vendor-${{ hashFiles('**/go.sum') }}
restore-keys: |
vendor-
- run: go mod vendor
- name: Build mruby
run: bash -c '(cd vendor/github.com/mitchellh/go-mruby && MRUBY_CONFIG=../../../../../../etc/build_config.rb make libmruby.a)'
- uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Run tests
run: make test
- name: Build
run: |
make build
- name: Upload linux build
if: (github.ref == 'refs/head/master' || contains(github.event.pull_request.body, '[Build]'))
uses: actions/upload-artifact@v4
with:
name: anycable-go-Linux-x86_64
path: dist/anycable-go
test-macos:
if: "!contains(github.event.head_commit.message, '[ci skip tests]')"
runs-on: macos-latest
env:
GO111MODULE: on
GOFLAGS: "-mod=vendor"
COVERAGE: "true"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install system deps
run: |
brew install bison
- uses: actions/cache@v4
with:
path: vendor
key: vendor-${{ hashFiles('**/go.sum') }}
restore-keys: |
vendor-
- uses: ruby/setup-ruby@v1
with:
# Use <3.0 since go-mruby's Rakefile has some problems with keyword arguments compatibility
ruby-version: 2.7
bundler-cache: true
- run: go mod vendor
- name: Build mruby
run: bash -c '(cd vendor/github.com/mitchellh/go-mruby && MRUBY_CONFIG=../../../../../../etc/build_config.rb make libmruby.a)'
- name: Run tests
run: make test
- name: Build
run: |
make build
- name: Upload MacOS build
if: (github.ref == 'refs/head/master' || contains(github.event.pull_request.body, '[Build]'))
uses: actions/upload-artifact@v4
with:
name: anycable-go-Darwin-x86_64
path: dist/anycable-go
test-conformance:
if: "!contains(github.event.head_commit.message, '[ci skip tests]')"
needs: [test, test-macos]
strategy:
matrix:
test_command:
- benchmarks
- test-features
- test-conformance
- test-conformance-http
- test-conformance-nats
- test-conformance-nats-embedded
- test-conformance-ssl
- test-conformance-broker-http
- test-conformance-broker-redis
- test-conformance-broker-nats
- test-conformance-embedded
runs-on: ubuntu-latest
env:
GO111MODULE: on
GOFLAGS: "-mod=vendor"
BUILD_ARGS: "-race"
GORACE: "halt_on_error=1"
COVERAGE: "true"
GOCOVERDIR: "_icoverdir_"
BUNDLE_PATH: ./vendor/bundle
# Specify REDIS_URL explicitly, so Makefile doesn't check the presence of Redis
REDIS_URL: redis://localhost:6379/
ANYCABLE_DISABLE_TELEMETRY: "true"
services:
redis:
image: redis:6.2-alpine
ports: ["6379:6379"]
options: --health-cmd="redis-cli ping" --health-interval 1s --health-timeout 3s --health-retries 30
nats:
image: nats:alpine
ports: ["4222:4222"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Install system deps
run: |
sudo apt-get update
sudo apt-get install bison
- name: Install websocket-bench & gops
if: matrix.test_command == 'benchmarks'
env:
GOFLAGS: ""
run: |
go install github.com/anycable/websocket-bench@latest
go install github.com/google/gops@latest
- uses: ruby/setup-ruby@v1
with:
# Use <3.0 since go-mruby's Rakefile has some problems with keyword arguments compatibility
ruby-version: 2.7
bundler-cache: true
- uses: actions/cache@v4
with:
path: vendor
key: vendor-${{ hashFiles('**/go.sum') }}
restore-keys: |
vendor-
- run: go mod vendor
- name: Build mruby
run: bash -c '(cd vendor/github.com/mitchellh/go-mruby && MRUBY_CONFIG=../../../../../../etc/build_config.rb make libmruby.a)'
- name: Run tests
run: |
bundle install
mkdir _icoverdir_
make ${{ matrix.test_command }}