This repository has been archived by the owner on May 21, 2024. It is now read-only.
This is a port of the PR changes found here: (#25) #76
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
name: CI | |
on: | |
# Enable manually triggering this workflow via the API or web UI | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
tags: | |
- v* | |
pull_request: | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
deps: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.20.x | |
- name: Check dependencies | |
run: | | |
go version | |
test -z "$(go mod tidy && git status --porcelain)" | |
go mod verify | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.20.x | |
- name: Retrieve golangci-lint version | |
run: | | |
echo "Version=$(head -n 1 "${GITHUB_WORKSPACE}/.golangci.yml" | tr -d '# ')" >> $GITHUB_OUTPUT | |
id: version | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
version: ${{ steps.version.outputs.Version }} | |
only-new-issues: true | |
test-go-versions: | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: [1.19.x, 1.20.x, tip] | |
platform: [ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Go ${{ matrix.go-version }} | |
if: matrix.go-version != 'tip' | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Install Go stable | |
if: matrix.go-version == 'tip' | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.x | |
- name: Install Go tip | |
shell: bash | |
if: matrix.go-version == 'tip' | |
run: | | |
go install golang.org/dl/gotip@latest | |
gotip download | |
echo "GOROOT=$HOME/sdk/gotip" >> "$GITHUB_ENV" | |
echo "GOPATH=$HOME/go" >> "$GITHUB_ENV" | |
echo "$HOME/go/bin" >> "$GITHUB_PATH" | |
echo "$HOME/sdk/gotip/bin" >> "$GITHUB_PATH" | |
- name: Run tests | |
run: | | |
which go | |
go version | |
go mod vendor | |
go test -race -timeout 60s ./... | |
test-build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.20.x | |
- name: Check build | |
run: | | |
go version | |
pwd && ls -l | |
go install go.k6.io/xk6/cmd/xk6@master | |
MODULE_NAME=`go list -m` | |
GOPRIVATE="go.k6.io/k6" xk6 build \ | |
--output ./k6ext \ | |
--with $MODULE_NAME="." | |
./k6ext version |