Merge pull request #337 from containerd/dependabot/github_actions/gol… #494
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: | |
push: | |
branches: | |
- main | |
- 'release/**' | |
pull_request: | |
branches: | |
- main | |
- 'release/**' | |
jobs: | |
# | |
# Project checks | |
# | |
project: | |
name: Project Checks | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
steps: | |
# | |
# Checkout repos | |
# | |
- name: Checkout cgroups | |
uses: actions/checkout@v3 | |
with: | |
path: src/github.com/containerd/cgroups | |
fetch-depth: 25 | |
# | |
# Install Go | |
# | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.20.x' | |
cache-dependency-path: src/github.com/containerd/cgroups | |
- name: Project checks | |
uses: containerd/project-checks@v1.1.0 | |
with: | |
working-directory: src/github.com/containerd/cgroups | |
lint: | |
name: Lint | |
timeout-minutes: 10 | |
needs: [project] | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
go-version: [1.19.x, 1.20.x] | |
steps: | |
- name: Checkout cgroups | |
uses: actions/checkout@v3 | |
with: | |
path: src/github.com/containerd/cgroups | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
cache-dependency-path: src/github.com/containerd/cgroups | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v6 | |
with: | |
version: v1.57.1 | |
args: --verbose | |
working-directory: src/github.com/containerd/cgroups | |
test: | |
name: Test cgroups | |
timeout-minutes: 15 | |
needs: [project] | |
strategy: | |
matrix: | |
go-version: [1.19.x, 1.20.x] | |
# Ubuntu-20.04 has cgroups v1 default; Ubuntu-22.04 has cgroups v2 default. | |
os: [ubuntu-20.04, ubuntu-22.04] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout cgroups | |
uses: actions/checkout@v3 | |
with: | |
path: src/github.com/containerd/cgroups | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
# Disable Go caching feature when compiling across Linux distributions due to collisions until https://github.com/actions/setup-go/issues/368 is resolved. | |
cache: false | |
- name: Run cgroup tests | |
run: | | |
$(command -v go) test -exec sudo -v -race -coverprofile=coverage.txt -covermode=atomic ./... | |
working-directory: src/github.com/containerd/cgroups | |
- name: Build cgctl | |
run: make all | |
working-directory: src/github.com/containerd/cgroups | |
proto: | |
name: Compare auto-generated Go files | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout cgroups | |
uses: actions/checkout@v3 | |
with: | |
path: src/github.com/containerd/cgroups | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.19.x' | |
cache-dependency-path: src/github.com/containerd/cgroups | |
- name: Set env | |
shell: bash | |
run: | | |
echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV | |
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH | |
- name: Install protoc | |
run: | | |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.5/protoc-21.5-linux-x86_64.zip | |
# /usr/local is not writable from GitHub Actions' user | |
sudo unzip protoc-21.5-linux-x86_64.zip -d /usr/local | |
- name: Install proto-related tools for Go | |
run: | | |
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 | |
go install github.com/containerd/protobuild@v0.3.0 | |
go install github.com/containerd/protobuild/cmd/go-fix-acronym@v0.3.0 | |
- name: Compare auto-generated Go files | |
run: | | |
make proto | |
git diff --exit-code | |
working-directory: src/github.com/containerd/cgroups |