diff options
Diffstat (limited to '.github')
-rwxr-xr-x[-rw-r--r--] | .github/ISSUE_TEMPLATE/bug_report.md | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | .github/ISSUE_TEMPLATE/feature_request.md | 0 | ||||
-rw-r--r-- | .github/dependabot.yml | 12 | ||||
-rw-r--r-- | .github/workflows/build.yml | 141 |
4 files changed, 64 insertions, 89 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 448a1aa4..448a1aa4 100644..100755 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 8c4b568f..8c4b568f 100644..100755 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..6143fb25 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04208eeb..b624451e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,62 +11,16 @@ on: - '**:**' jobs: - php: - name: Build (PHP ${{ matrix.php }}, ${{ matrix.setup }} setup) - runs-on: ubuntu-20.04 - timeout-minutes: 10 - strategy: - fail-fast: false - matrix: - php: [ '7.2', '7.3', '7.4', '8.0' ] - setup: [ basic, lowest ] - steps: - - name: Set up PHP ${{ matrix.php }} - uses: shivammathur/setup-php@v2 # action page: <https://github.com/shivammathur/setup-php> - with: - php-version: ${{ matrix.php }} - - - name: Check out code - uses: actions/checkout@v2 - - - name: Syntax check only (lint) - run: find ./src/ ./tests/ -name "*.php" -print0 | xargs -0 -n1 -P8 php -l - - - name: Get Composer Cache Directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Init Composer Cache # Docs: <https://git.io/JfAKn#php---composer> - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ matrix.setup }}-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install lowest Composer dependencies - if: matrix.setup == 'lowest' - run: composer update --prefer-dist --no-progress --prefer-lowest --ansi - - - name: Install basic Composer dependencies - if: matrix.setup == 'basic' - run: composer update --prefer-dist --no-progress --ansi - - - name: Analyze PHP sources - run: composer analyze - - # TODO write phpunit tests - #- name: Analyze PHP sources - # run: composer test - golang: - name: Build (Go ${{ matrix.go }}, PHP ${{ matrix.php }}) - runs-on: ubuntu-20.04 - timeout-minutes: 20 + name: Build (Go ${{ matrix.go }}, PHP ${{ matrix.php }}, OS ${{matrix.os}}) + runs-on: ${{ matrix.os }} + timeout-minutes: 60 strategy: fail-fast: false matrix: - php: [ '7.2', '7.3', '7.4', '8.0' ] + php: [ '7.4', '8.0' ] go: [ '1.14', '1.15' ] + os: [ ubuntu-20.04, windows-latest, macos-latest ] steps: - name: Set up Go ${{ matrix.go }} uses: actions/setup-go@v2 # action page: <https://github.com/actions/setup-go> @@ -77,15 +31,18 @@ jobs: uses: shivammathur/setup-php@v2 # action page: <https://github.com/shivammathur/setup-php> with: php-version: ${{ matrix.php }} + extensions: sockets - name: Check out code uses: actions/checkout@v2 - name: Get Composer Cache Directory + if: ${{ matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' }} id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Init Composer Cache # Docs: <https://git.io/JfAKn#php---composer> + if: ${{ matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' }} uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} @@ -93,7 +50,7 @@ jobs: restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer update --prefer-dist --no-progress --ansi + run: cd tests && composer update --prefer-dist --no-progress --ansi - name: Init Go modules Cache # Docs: <https://git.io/JfAKn#go---modules> uses: actions/cache@v2 @@ -105,57 +62,63 @@ jobs: - name: Install Go dependencies run: go mod download - - name: Run golang tests + - name: Run golang tests on Windows without codecov + if: ${{ matrix.os == 'windows-latest' }} + run: | + go test -v -race -cover -tags=debug ./util + go test -v -race -cover -tags=debug ./pkg/pipe + go test -v -race -cover -tags=debug ./pkg/pool + go test -v -race -cover -tags=debug ./pkg/socket + go test -v -race -cover -tags=debug ./pkg/worker + + - name: Run golang tests on Linux and MacOS + if: ${{ matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' }} run: | mkdir ./coverage-ci - go test -race -v -covermode=atomic -coverprofile=./coverage-ci/lib.txt - go test ./util -race -v -covermode=atomic -coverprofile=./coverage-ci/util.txt - go test ./service -race -v -covermode=atomic -coverprofile=./coverage-ci/service.txt - go test ./service/env -race -v -covermode=atomic -coverprofile=./coverage-ci/env.txt - go test ./service/rpc -race -v -covermode=atomic -coverprofile=./coverage-ci/rpc.txt - go test ./service/http -race -v -covermode=atomic -coverprofile=./coverage-ci/http.txt - go test ./service/static -race -v -covermode=atomic -coverprofile=./coverage-ci/static.txt - go test ./service/limit -race -v -covermode=atomic -coverprofile=./coverage-ci/limit.txt - go test ./service/headers -race -v -covermode=atomic -coverprofile=./coverage-ci/headers.txt - go test ./service/metrics -race -v -covermode=atomic -coverprofile=./coverage-ci/metrics.txt - go test ./service/health -race -v -covermode=atomic -coverprofile=./coverage-ci/health.txt - go test ./service/gzip -race -v -covermode=atomic -coverprofile=./coverage-ci/gzip.txt - # reload tests temporarily excluded from CI due to intensive work with the file system, and unpredictable GHA - # go test ./service/reload -race -v -covermode=atomic -coverprofile=./coverage-ci/reload.txt + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/util.txt -covermode=atomic ./util + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/pipe.txt -covermode=atomic ./pkg/pipe + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/pool.txt -covermode=atomic ./pkg/pool + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/socket.txt -covermode=atomic ./pkg/socket + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/worker.txt -covermode=atomic ./pkg/worker + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/http.txt -covermode=atomic ./tests/plugins/http + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/informer.txt -covermode=atomic ./tests/plugins/informer + go test -v -race -cover -tags=debug -coverprofile=./coverage-ci/server.txt -covermode=atomic ./tests/plugins/server cat ./coverage-ci/*.txt > ./coverage-ci/summary.txt - uses: codecov/codecov-action@v1 # Docs: <https://github.com/codecov/codecov-action> + if: ${{ matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' }} with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage-ci/summary.txt fail_ci_if_error: false - golangci-check: + golangci-lint: name: Golang-CI (lint) runs-on: ubuntu-20.04 steps: - name: Check out code - uses: actions/checkout@v1 - - - name: golangci-lint - uses: reviewdog/action-golangci-lint@v1 # action page: <https://github.com/reviewdog/action-golangci-lint> - with: - github_token: ${{ secrets.github_token }} - - image: - name: Build docker image - runs-on: ubuntu-20.04 - timeout-minutes: 10 - steps: - - name: Check out code uses: actions/checkout@v2 - - name: Build image - run: docker build -t roadrunner:local -f Dockerfile . - - - name: Scan image - uses: anchore/scan-action@v2 # action page: <https://github.com/anchore/scan-action> + - name: Run linter + uses: golangci/golangci-lint-action@v2 # Action page: <https://github.com/golangci/golangci-lint-action> with: - image: roadrunner:local - fail-build: true - severity-cutoff: low # negligible, low, medium, high or critical + version: v1.33 # without patch version + only-new-issues: false # show only new issues if it's a pull request + +# image: +# name: Build docker image +# runs-on: ubuntu-20.04 +# timeout-minutes: 10 +# steps: +# - name: Check out code +# uses: actions/checkout@v2 + +# - name: Build image +# run: docker build -t roadrunner:local -f Dockerfile . + +# - name: Scan image +# uses: anchore/scan-action@v2 # action page: <https://github.com/anchore/scan-action> +# with: +# image: roadrunner:local +# fail-build: true +# severity-cutoff: low # negligible, low, medium, high or critical |