Skip to content

Commit

Permalink
ci: change to use GitHub actions
Browse files Browse the repository at this point in the history
Signed-off-by: PoAn Yang <[email protected]>
  • Loading branch information
FrankYang0529 committed May 7, 2024
1 parent fe00de2 commit 0f48e10
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 3 deletions.
50 changes: 50 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build-amd64:
name: Build AMD64 binaries
runs-on: longhorn-infra-amd64-runners
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install make curl kmod
run: |
sudo apt update
sudo apt-get -y install make curl kmod
# Build binaries
- name: Run ci
run: make ci

- uses: codecov/codecov-action@v4
with:
files: ./coverage.out
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}

build-arm64:
name: Build ARM64 binaries
runs-on: longhorn-infra-arm64-runners
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install make curl kmod
run: |
sudo apt update
sudo apt-get -y install make curl kmod
# Build binaries
- name: Run ci
run: make ci

- uses: codecov/codecov-action@v4
with:
files: ./coverage.out
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
7 changes: 5 additions & 2 deletions Dockerfile.dapper
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM registry.suse.com/bci/bci-base:15.5

ARG DAPPER_HOST_ARCH=amd64
ARG DAPPER_HOST_ARCH
ARG http_proxy
ARG https_proxy
ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH}
Expand Down Expand Up @@ -30,8 +30,9 @@ ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm64=arm64 GOLANG_ARCH_s390x=s390x GOLA
RUN wget -O - https://storage.googleapis.com/golang/go1.22.2.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2


# Build SPDK
ENV HUGEMEM=1024
RUN echo "vm.nr_hugepages=$((HUGEMEM/2))" >> /etc/sysctl.conf
ENV SPDK_DIR /usr/src/spdk
ENV SPDK_COMMIT_ID 62a8f8a9c5ac99f6e63d654f6fc6c427c5d8815b
RUN git clone https://github.com/longhorn/spdk.git ${SPDK_DIR} --recursive && \
Expand Down Expand Up @@ -74,6 +75,8 @@ RUN git clone https://github.com/linux-nvme/nvme-cli.git ${NVME_CLI_DIR} && \
meson compile -C .build && \
meson install -C .build

RUN ldconfig

VOLUME /tmp
ENV TMPDIR /tmp
ENTRYPOINT ["./scripts/entry"]
Expand Down
9 changes: 9 additions & 0 deletions pkg/spdk/spdk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
. "gopkg.in/check.v1"

commonTypes "github.com/longhorn/go-common-libs/types"
"github.com/sirupsen/logrus"

"github.com/longhorn/go-spdk-helper/pkg/jsonrpc"
"github.com/longhorn/go-spdk-helper/pkg/nvme"
Expand Down Expand Up @@ -52,7 +53,11 @@ func LaunchTestSPDKTarget(c *C, execute func(envs []string, binary string, args
if spdkCli, err := client.NewClient(context.Background()); err == nil {
if _, err := spdkCli.BdevGetBdevs("", 0); err == nil {
targetReady = true
} else {
logrus.Warnf("Failed to get SPDK bdevs: %v", err)
}
} else {
logrus.Warnf("Failed to create SPDK client: %v", err)
}

if !targetReady {
Expand All @@ -66,7 +71,11 @@ func LaunchTestSPDKTarget(c *C, execute func(envs []string, binary string, args
if _, err := spdkCli.BdevGetBdevs("", 0); err == nil {
targetReady = true
break
} else {

Check notice on line 74 in pkg/spdk/spdk_test.go

View check run for this annotation

codefactor.io / CodeFactor

pkg/spdk/spdk_test.go#L74

If block ends with a break statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (superfluous-else)
logrus.Warnf("Failed to get SPDK bdevs: %v", err)
}
} else {
logrus.Warnf("Failed to create SPDK client: %v", err)
}
time.Sleep(time.Second)
}
Expand Down
11 changes: 10 additions & 1 deletion scripts/test
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,20 @@ then
fi
echo "Hugepages configured: $hugepages"

modules=("uio_pci_generic" "nvme-tcp")

for module in "${modules[@]}"
do
if ! modprobe "$module"; then
echo "Failed to load $module module"
exit 1
fi
done

mount --rbind /host/dev /dev
mount --rbind /host/sys /sys
trap "umount /dev && umount /sys" EXIT


PACKAGES="$(find -name '*.go' | xargs -I{} dirname {} | cut -f2 -d/ | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin)' | sed -e 's!^!./!' -e 's!$!/...!')"

go test -v -race -cover ${PACKAGES}

0 comments on commit 0f48e10

Please sign in to comment.