You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2021/08/16 08:12:51 UTC
[skywalking-cli] branch master updated: split into multiple
workflows to speed up CI (#109)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-cli.git
The following commit(s) were added to refs/heads/master by this push:
new 40472a8 split into multiple workflows to speed up CI (#109)
40472a8 is described below
commit 40472a82d9d7529685c9e5532664421544e0b127
Author: Hoshea Jiang <fg...@gmail.com>
AuthorDate: Mon Aug 16 16:12:48 2021 +0800
split into multiple workflows to speed up CI (#109)
---
.github/file-filters.yml | 25 ++++++++++
.github/workflows/go.yml | 33 ++++---------
.github/workflows/golangci-lint.yml | 46 ++++++++++++++++++
.github/workflows/{go.yml => license-checker.yml} | 48 +++----------------
.github/workflows/{go.yml => unit-tests.yml} | 58 +++++++----------------
Makefile | 4 +-
6 files changed, 108 insertions(+), 106 deletions(-)
diff --git a/.github/file-filters.yml b/.github/file-filters.yml
new file mode 100644
index 0000000..4be8153
--- /dev/null
+++ b/.github/file-filters.yml
@@ -0,0 +1,25 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+code-changes:
+ - '**/*.go'
+ - 'go.mod'
+ - '.golangci.yml'
+ - '.github/*.yml'
+ - '.github/*.yaml'
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index c062bb5..7f948b4 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -29,44 +29,31 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
+ - uses: actions/checkout@v2
+ - name: Check for go file changes
+ uses: getsentry/paths-filter@v2
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14
- - name: Check out code into the Go module directory
- uses: actions/checkout@v2
- with:
- submodules: true
-
- - name: Check License
- uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- name: Check code generation
run: make check-codegen
-
+
- uses: actions/upload-artifact@v2
if: failure()
with:
name: check-diff
path: /tmp/swctl/check.diff
- - name: Check License
- run: make license
-
- - name: Get dependencies
- run: make deps
-
- - name: Lint
- run: make lint
-
- - name: Test and report coverage
- run: make coverage
-
- name: Build
run: make build -j3
- name: Test commands
+ if: steps.changes.outputs.code-changes == 'true'
run: make test-commands
diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml
new file mode 100644
index 0000000..ff338b4
--- /dev/null
+++ b/.github/workflows/golangci-lint.yml
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: golangci-lint
+
+on:
+ pull_request:
+ push:
+ branches:
+ - master
+
+jobs:
+ golangci:
+ name: lint
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Check for go file changes
+ uses: getsentry/paths-filter@v2
+ id: changes
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ filters: .github/file-filters.yml
+
+ - name: golangci-lint
+ if: steps.changes.outputs.code-changes == 'true'
+ uses: golangci/golangci-lint-action@v2
+ with:
+ version: v1.40.1
+ args: --timeout 5m
diff --git a/.github/workflows/go.yml b/.github/workflows/license-checker.yml
similarity index 51%
copy from .github/workflows/go.yml
copy to .github/workflows/license-checker.yml
index c062bb5..aafb354 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/license-checker.yml
@@ -16,7 +16,8 @@
# specific language governing permissions and limitations
# under the License.
#
-name: Build
+
+name: license-checker
on:
pull_request:
@@ -25,48 +26,13 @@ on:
- master
jobs:
- build:
- name: Build
+ check-license:
runs-on: ubuntu-latest
steps:
- - name: Set up Go 1.14
- uses: actions/setup-go@v2
- with:
- go-version: 1.14
-
- - name: Check out code into the Go module directory
- uses: actions/checkout@v2
- with:
- submodules: true
-
- - name: Check License
- uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
+ - uses: actions/checkout@v2
+ - name: Check License Header
+ uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Check code generation
- run: make check-codegen
-
- - uses: actions/upload-artifact@v2
- if: failure()
with:
- name: check-diff
- path: /tmp/swctl/check.diff
-
- - name: Check License
- run: make license
-
- - name: Get dependencies
- run: make deps
-
- - name: Lint
- run: make lint
-
- - name: Test and report coverage
- run: make coverage
-
- - name: Build
- run: make build -j3
-
- - name: Test commands
- run: make test-commands
+ log: info
diff --git a/.github/workflows/go.yml b/.github/workflows/unit-tests.yml
similarity index 50%
copy from .github/workflows/go.yml
copy to .github/workflows/unit-tests.yml
index c062bb5..0862eb2 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/unit-tests.yml
@@ -16,7 +16,8 @@
# specific language governing permissions and limitations
# under the License.
#
-name: Build
+
+name: unit-test
on:
pull_request:
@@ -25,48 +26,25 @@ on:
- master
jobs:
- build:
- name: Build
+ unit-tests:
runs-on: ubuntu-latest
steps:
- - name: Set up Go 1.14
- uses: actions/setup-go@v2
- with:
- go-version: 1.14
-
- - name: Check out code into the Go module directory
- uses: actions/checkout@v2
+ - uses: actions/checkout@v2
+ - name: Check for go file changes
+ uses: getsentry/paths-filter@v2
+ id: changes
with:
- submodules: true
-
- - name: Check License
- uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
- - name: Check code generation
- run: make check-codegen
-
- - uses: actions/upload-artifact@v2
- if: failure()
+ - name: setup go
+ if: steps.changes.outputs.go == 'true'
+ uses: actions/setup-go@v2
with:
- name: check-diff
- path: /tmp/swctl/check.diff
-
- - name: Check License
- run: make license
-
- - name: Get dependencies
- run: make deps
-
- - name: Lint
- run: make lint
-
- - name: Test and report coverage
- run: make coverage
-
- - name: Build
- run: make build -j3
+ go-version: '1.13'
- - name: Test commands
- run: make test-commands
+ - name: run unit tests and report coverage
+ if: steps.changes.outputs.go == 'true'
+ working-directory: ./
+ run: |
+ make coverage
diff --git a/Makefile b/Makefile
index cc61d7e..b4e7faf 100644
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ lint: tools
$(GO_LINT) run -v --timeout 5m ./...
.PHONY: test
-test: clean lint
+test: clean
$(GO_TEST) ./... -coverprofile=coverage.txt -covermode=atomic
.PHONY: build
@@ -101,7 +101,7 @@ coverage: test
bash <(curl -s https://codecov.io/bash) -t a5af28a3-92a2-4b35-9a77-54ad99b1ae00
.PHONY: clean
-clean: tools
+clean:
-rm -rf bin
-rm -rf coverage.txt
-rm -rf *.tgz