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 8, 2024
1 parent fe00de2 commit 46cc640
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 6 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 }}
13 changes: 8 additions & 5 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 All @@ -21,7 +21,7 @@ RUN zypper -n addrepo --refresh https://download.opensuse.org/repositories/syste
zypper -n addrepo --refresh https://download.opensuse.org/repositories/devel:languages:python:backports/SLE_15/devel:languages:python:backports.repo && \
zypper --gpg-auto-import-keys ref

RUN zypper -n install cmake curl wget git gcc tar xsltproc docbook-xsl-stylesheets python3 meson ninja python3-pip \
RUN zypper -n install cmake curl wget git gcc unzip tar xsltproc docbook-xsl-stylesheets python3 meson ninja python3-pip \
e2fsprogs xfsprogs util-linux-systemd python3-pyelftools libcmocka-devel device-mapper

# Install Go & tools
Expand All @@ -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 @@ -64,16 +65,18 @@ RUN cd /usr/src && \
make && \
make install

# Build nvme-cli 2.5
# Build nvme-cli 2.7.1
ENV NVME_CLI_DIR /usr/src/nvme-cli
ENV NVME_CLI_COMMIT_ID d6c07e0de9be777009ebb9ab7475bee1ae3e0e95
ENV NVME_CLI_COMMIT_ID dcdad6f5d70ffb2fa151f229db048180671eb1fe
RUN git clone https://github.com/linux-nvme/nvme-cli.git ${NVME_CLI_DIR} && \
cd ${NVME_CLI_DIR} && \
git checkout ${NVME_CLI_COMMIT_ID} && \
meson setup --force-fallback-for=libnvme .build && \
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
6 changes: 5 additions & 1 deletion scripts/test
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ echo "Hugepages configured: $hugepages"

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

mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
spdk_tgt &

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}
go test -v -race -cover -coverprofile=coverage.out ${PACKAGES}

0 comments on commit 46cc640

Please sign in to comment.