forked from open-telemetry/opentelemetry-go
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add compatibility tests to CI (open-telemetry#1567)
* Add compatibility tests to CI * Increase timeout to 60s Some of the aggregator tests are running just over 30 seconds when testing on Windows. Bump this to allow for it. * Remove cache setup jobs Having a unified job setup the cache when none exists so packages are only downloaded once is ideal, but these steps are taking too long. In some situations they are doubling the run time. Remove them and prefer to have multiple downloads when dependencies change. * Add changes to changelog * Remove mod-download target from Makefile Unused now that the cache jobs are removed. * Add compatibility testing table to changelog * Add change about precommit to changelog * Update README * Correct examples target in lint job
- Loading branch information
Showing
4 changed files
with
265 additions
and
137 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,46 +5,142 @@ on: | |
- main | ||
pull_request: | ||
env: | ||
TEST_RESULTS: /tmp/test-results # path to where test results will be saved | ||
# Path to where test results will be saved. | ||
TEST_RESULTS: /tmp/test-results | ||
# Default minimum version of Go to support. | ||
DEFAULT_GO_VERSION: 1.14 | ||
jobs: | ||
go: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Go | ||
uses: actions/[email protected] | ||
with: | ||
go-version: ${{ env.DEFAULT_GO_VERSION }} | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
- name: Setup Environment | ||
run: | | ||
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV | ||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
- name: Module cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: go-mod-cache | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/go.sum') }} | ||
- name: Tools cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: go-tools-cache | ||
with: | ||
path: ~/.tools | ||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('./internal/tools/**') }} | ||
- name: Run linters | ||
run: make dependabot-check license-check lint | ||
- name: Build | ||
run: make examples build | ||
- name: Check clean repository | ||
run: make check-clean-work-tree | ||
|
||
test-race: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Go | ||
uses: actions/[email protected] | ||
with: | ||
go-version: ${{ env.DEFAULT_GO_VERSION }} | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
- name: Setup Environment | ||
run: | | ||
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV | ||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
- name: Module cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: go-mod-cache | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/go.sum') }} | ||
- name: Run tests with race detector | ||
run: make test-race | ||
|
||
test-coverage: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Go | ||
uses: actions/[email protected] | ||
with: | ||
go-version: ${{ env.DEFAULT_GO_VERSION }} | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
- name: Setup Environment | ||
run: | | ||
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV | ||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
- name: Module cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: go-mod-cache | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/go.sum') }} | ||
- name: Run coverage tests | ||
run: | | ||
make test-coverage | ||
mkdir $TEST_RESULTS | ||
cp coverage.out $TEST_RESULTS | ||
cp coverage.txt $TEST_RESULTS | ||
cp coverage.html $TEST_RESULTS | ||
- name: Upload coverage report | ||
uses: codecov/codecov-action@v1 | ||
with: | ||
file: ./coverage.txt | ||
fail_ci_if_error: true | ||
verbose: true | ||
- name: Store coverage test output | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: opentelemetry-go-test-output | ||
path: ${{ env.TEST_RESULTS }} | ||
|
||
compatibility-test: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
go_version: [1.14, 1.15] | ||
runs-on: ubuntu-latest | ||
go-version: [1.15, 1.14] | ||
os: [ubuntu-latest, macos-latest, windows-latest] | ||
# GitHub Actions does not support arm* architectures on default | ||
# runners. It is possible to acomplish this with a self-hosted runner | ||
# if we want to add this in the future: | ||
# https://docs.github.com/en/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow | ||
arch: ["386", amd64] | ||
exclude: | ||
# Not a supported Go OS/architecture. | ||
- os: macos-latest | ||
arch: "386" | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
- name: Setup Go | ||
uses: actions/[email protected] | ||
with: | ||
go-version: ${{ matrix.go_version }} | ||
- name: Setup Environment | ||
run: | | ||
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV | ||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
- name: restore cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: cache-go-mod | ||
with: | ||
path: /home/runner/go/pkg/mod | ||
key: go-pkg-mod-{{ checksum "go.sum" }} | ||
- name: Precommit and Coverage Report | ||
run: | | ||
make ci | ||
mkdir $TEST_RESULTS | ||
cp coverage.out $TEST_RESULTS | ||
cp coverage.txt $TEST_RESULTS | ||
cp coverage.html $TEST_RESULTS | ||
- uses: codecov/codecov-action@v1 | ||
with: | ||
file: ./coverage.txt | ||
fail_ci_if_error: true | ||
verbose: true | ||
- name: store test output | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: opentelemetry-go-test-output | ||
path: ${{ env.TEST_RESULTS }} | ||
- name: Install Go | ||
uses: actions/[email protected] | ||
with: | ||
go-version: ${{ matrix.go-version }} | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Setup Environment | ||
run: | | ||
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV | ||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
shell: bash | ||
- name: Module cache | ||
uses: actions/[email protected] | ||
env: | ||
cache-name: go-mod-cache | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/go.sum') }} | ||
- name: Run tests | ||
env: | ||
GOARCH: ${{ matrix.arch }} | ||
run: make test-short |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.