A more easy way to setup nydus snapshotter by DaemonSet #2658
Workflow file for this run
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: ["**", "stable/**"] | |
pull_request: | |
branches: ["**", "stable/**"] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
name: Build and Lint | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: "1.20.1" | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: cache go mod | |
uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go | |
- name: Build | |
run: | | |
go install github.com/golangci/golangci-lint/cmd/[email protected] | |
export PATH=$PATH:$(go env GOPATH)/bin | |
make | |
make test | |
make check | |
build-optimizer: | |
name: Build optimizer | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: "1.20.1" | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: cache go mod | |
uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go | |
- name: Build | |
run: | | |
go install github.com/golangci/golangci-lint/cmd/[email protected] | |
export PATH=$PATH:$(go env GOPATH)/bin | |
rustup component add rustfmt clippy | |
make build-optimizer | |
smoke: | |
name: Smoke | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: "1.19.6" | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: cache go mod | |
uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go | |
- name: Set up containerd | |
uses: crazy-max/ghaction-setup-containerd@v2 | |
- name: Build | |
run: | | |
# Download nydus components | |
NYDUS_VER=v$(curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -s "https://api.github.com/repos/dragonflyoss/nydus/releases/latest" | jq -r .tag_name | sed 's/^v//') | |
wget https://github.com/dragonflyoss/nydus/releases/download/$NYDUS_VER/nydus-static-$NYDUS_VER-linux-amd64.tgz | |
tar xzvf nydus-static-$NYDUS_VER-linux-amd64.tgz | |
mkdir -p /usr/bin | |
sudo mv nydus-static/nydus-image nydus-static/nydusd nydus-static/nydusify /usr/bin/ | |
export PATH=$PATH:$(go env GOPATH)/bin | |
make smoke | |
cross-build-test: | |
name: Cross Build Test | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
GOOS: ["linux", "windows", "darwin"] | |
GOARCH: ["amd64", "arm64"] | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: "1.19.6" | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: cache go mod | |
uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go | |
- name: Build | |
run: | | |
make -e GOOS=${{ matrix.GOOS }} GOARCH=${{ matrix.GOARCH }} converter | |
coverage: | |
name: Code coverage | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
needs: [build] | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: "1.19.6" | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: cache go mod | |
uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go | |
- name: Run unit tests. | |
run: make cover | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos | |
files: ./coverage.txt |