name: CI on: push: branches: tags: pull_request: jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: php: [7.1, 7.2, 7.3, 7.4] steps: - name: Set up Go 1.12 uses: actions/setup-go@v1 with: go-version: 1.12 id: go - name: Check out code into the Go module directory uses: actions/checkout@v1 - name: Install PHP uses: shivammathur/setup-php@master with: php-version: ${{ matrix.php }} extension-csv: dom coverage: xdebug - name: Install dependencies and download binary roadrunner run: | export GO111MODULE=on php -v composer -V go version go mod download composer install --no-interaction --prefer-source find src/ -name "*.php" -print0 | xargs -0 -n1 -P8 php -l chmod +x bin/rr && bin/rr get-binary - name: Run golang tests run: | go test -race -v -coverprofile=lib.txt -covermode=atomic go test ./util -race -v -coverprofile=util.txt -covermode=atomic go test ./service -race -v -coverprofile=service.txt -covermode=atomic go test ./service/env -race -v -coverprofile=env.txt -covermode=atomic go test ./service/rpc -race -v -coverprofile=rpc.txt -covermode=atomic go test ./service/http -race -v -coverprofile=http.txt -covermode=atomic go test ./service/static -race -v -coverprofile=static.txt -covermode=atomic go test ./service/limit -race -v -coverprofile=limit.txt -covermode=atomic go test ./service/headers -race -v -coverprofilevers=headers.txt -covermode=atomic go test ./service/metrics -race -v -coverprofile=metrics.txt -covermode=atomic go test ./service/health -race -v -coverprofile=health.txt -covermode=atomic - name: Run code coverage run: | bash <(curl -s https://codecov.io/bash) -f lib.txt bash <(curl -s https://codecov.io/bash) -f util.txt bash <(curl -s https://codecov.io/bash) -f service.txt bash <(curl -s https://codecov.io/bash) -f env.txt bash <(curl -s https://codecov.io/bash) -f rpc.txt bash <(curl -s https://codecov.io/bash) -f http.txt bash <(curl -s https://codecov.io/bash) -f static.txt bash <(curl -s https://codecov.io/bash) -f limit.txt bash <(curl -s https://codecov.io/bash) -f headers.txt bash <(curl -s https://codecov.io/bash) -f metrics.txt bash <(curl -s https://codecov.io/bash) -f health.txt