mirror of
https://github.com/SynologyOpenSource/synology-csi.git
synced 2026-02-13 21:00:03 +00:00
ci: Add workflow
This commit is contained in:
35
.github/workflows/ci.yaml
vendored
Normal file
35
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/ci.yaml'
|
||||||
|
- 'go.*'
|
||||||
|
- '**/*.go'
|
||||||
|
- 'Dockerfile'
|
||||||
|
- 'Makefile'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/ci.yaml'
|
||||||
|
- 'go.*'
|
||||||
|
- '**/*.go'
|
||||||
|
- 'Dockerfile'
|
||||||
|
- 'Makefile'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v6.0.1
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v6.1.0
|
||||||
|
with:
|
||||||
|
go-version-file: 'go.mod'
|
||||||
|
|
||||||
|
- name: Build binary
|
||||||
|
run: make build
|
||||||
29
Makefile
29
Makefile
@@ -13,27 +13,40 @@ GOARM?=""
|
|||||||
BUILD_ENV=CGO_ENABLED=0 GOOS=linux GOARCH=$(GOARCH) GOARM=$(GOARM)
|
BUILD_ENV=CGO_ENABLED=0 GOOS=linux GOARCH=$(GOARCH) GOARM=$(GOARM)
|
||||||
BUILD_FLAGS="-s -w -extldflags \"-static\""
|
BUILD_FLAGS="-s -w -extldflags \"-static\""
|
||||||
|
|
||||||
.PHONY: all clean synology-csi-driver synocli test docker-build
|
.PHONY: all
|
||||||
|
all: build
|
||||||
|
|
||||||
all: synology-csi-driver
|
.PHONY: FORCE
|
||||||
|
FORCE: ;
|
||||||
|
|
||||||
synology-csi-driver:
|
.PHONY: build
|
||||||
@mkdir -p bin
|
build: bin/synology-csi-driver bin/synocli
|
||||||
$(BUILD_ENV) go build -v -ldflags $(BUILD_FLAGS) -o ./bin/synology-csi-driver ./
|
|
||||||
|
|
||||||
|
bin:
|
||||||
|
@mkdir -p $@
|
||||||
|
|
||||||
|
bin/synology-csi-driver: bin FORCE
|
||||||
|
@echo "Compiling $@…"
|
||||||
|
@$(BUILD_ENV) go build -v -ldflags $(BUILD_FLAGS) -o $@ ./
|
||||||
|
|
||||||
|
.PHONY: docker-build
|
||||||
docker-build:
|
docker-build:
|
||||||
docker build -f Dockerfile -t $(IMAGE_TAG) .
|
docker build -f Dockerfile -t $(IMAGE_TAG) .
|
||||||
|
|
||||||
|
.PHONY: docker-build-multiarch
|
||||||
docker-build-multiarch:
|
docker-build-multiarch:
|
||||||
docker buildx build -t $(IMAGE_TAG) --platform linux/amd64,linux/arm/v7,linux/arm64 . --push
|
docker buildx build -t $(IMAGE_TAG) --platform linux/amd64,linux/arm/v7,linux/arm64 . --push
|
||||||
|
|
||||||
synocli:
|
bin/synocli: bin FORCE
|
||||||
@mkdir -p bin
|
@echo "Compiling $@…"
|
||||||
$(BUILD_ENV) go build -v -ldflags $(BUILD_FLAGS) -o ./bin/synocli ./synocli
|
@$(BUILD_ENV) go build -v -ldflags $(BUILD_FLAGS) -o $@ ./synocli
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
go clean -testcache
|
go clean -testcache
|
||||||
go test -v ./test/...
|
go test -v ./test/...
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
-rm -rf ./bin
|
-rm -rf ./bin
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user