Skip to content

Commit

Permalink
Merge pull request #216 from bergwolf/upstream/action
Browse files Browse the repository at this point in the history
action: build all static binaries and include them in release tarball
  • Loading branch information
changweige authored Nov 23, 2021
2 parents 26d630a + b685df7 commit 6c48107
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 13 deletions.
27 changes: 17 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,45 +27,52 @@ jobs:
- name: Build nydus-rs
run: |
make docker-static
sudo mv target-fusedev/x86_64-unknown-linux-musl/release/nydusd .
sudo mv target-fusedev/x86_64-unknown-linux-musl/release/nydusd nydusd-fusedev
sudo mv target-fusedev/x86_64-unknown-linux-musl/release/nydus-image .
sudo mv target-fusedev/x86_64-unknown-linux-musl/release/nydusctl .
sudo mv target-virtiofs/x86_64-unknown-linux-musl/release/nydusd nydusd-virtiofs
sudo chown -R $(id -un):$(id -gn) .
- name: store-artifacts
uses: actions/upload-artifact@v2
with:
name: nydus-artifacts
path: |
nydusd
nydusd-fusedev
nydusd-virtiofs
nydus-image
build-nydusify-nydus-snapshotter:
nydusctl
build-contrib:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: cache go mod
uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/contrib/nydus-snapshotter/go.sum', '**/contrib/nydusify/go.sum') }}
key: ${{ runner.os }}-go-${{ hashFiles('**/contrib/nydus-snapshotter/go.sum', '**/contrib/nydusify/go.sum', '**/contrib/ctr-remote/go.sum', '**/contrib/docker-nydus-graphdriver/go.sum', '**/contrib/nydus-overlayfs/go.sum') }}
restore-keys: |
${{ runner.os }}-go
- name: build nydusify
- name: build contrib go components
run: |
make nydusify-static
- name: build nydus-snapshotter
run: |
make nydus-snapshotter-static
make all-contrib-static-release
sudo mv contrib/ctr-remote/bin/ctr-remote .
sudo mv contrib/docker-nydus-graphdriver/bin/nydus_graphdriver .
sudo mv contrib/nydusify/cmd/nydusify .
sudo mv contrib/nydus-overlayfs/bin/nydus-overlayfs .
sudo mv contrib/nydus-snapshotter/bin/containerd-nydus-grpc .
- name: store-artifacts
uses: actions/upload-artifact@v2
with:
name: nydus-artifacts
path: |
ctr-remote
nydus_graphdriver
nydusify
nydus-overlayfs
containerd-nydus-grpc
upload-artifacts:
runs-on: ubuntu-latest
needs: [build-nydus-rs, build-nydusify-nydus-snapshotter]
needs: [build-nydus-rs, build-contrib]
steps:
- uses: actions/checkout@v2
- name: install hub
Expand Down
16 changes: 13 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ VIRIOFS_COMMON = --target-dir target-virtiofs --features=virtiofs --release
# $(2): How to build the golang project
define build_golang
echo "Building target $@ by invoking: $(2)"
if [ $(DOCKER) = "true" ]; then
if [ $(DOCKER) = "true" ]; then
docker run --rm -v ${go_path}:/go -v ${current_dir}:/nydus-rs --workdir /nydus-rs/$(1) golang:1.15 $(2)
else
$(2) -C $(1)
Expand Down Expand Up @@ -58,7 +58,7 @@ endef
# Targets that are exposed to developers and users.
build: .format fusedev virtiofs
release: .format .release_version fusedev virtiofs
static-release: .musl_target .format .release_version fusedev
static-release: .musl_target .format .release_version fusedev virtiofs
fusedev-release: .format .release_version fusedev
virtiofs-release: .format .release_version virtiofs

Expand Down Expand Up @@ -159,9 +159,19 @@ nydus-overlayfs:
nydus-overlayfs-static:
$(call build_golang,${NYDUS-OVERLAYFS_PATH},make static-release)

DOCKER-GRAPHDRIVER_PATH = contrib/docker-nydus-graphdriver
docker-nydus-graphdriver:
$(call build_golang,${DOCKER-GRAPHDRIVER_PATH},make)

docker-nydus-graphdriver-static:
$(call build_golang,${DOCKER-GRAPHDRIVER_PATH},make static-release)

# Run integration smoke test in docker-in-docker container. It requires some special settings,
# refer to `misc/example/README.md` for details.
all-static-release: docker-static nydusify-static nydus-snapshotter-static ctr-remote-static nydus-overlayfs-static
all-static-release: docker-static all-contrib-static-release

all-contrib-static-release: nydusify-static nydus-snapshotter-static ctr-remote-static \
nydus-overlayfs-static docker-nydus-graphdriver-static

# https://www.gnu.org/software/make/manual/html_node/One-Shell.html
.ONESHELL:
Expand Down
1 change: 1 addition & 0 deletions contrib/docker-nydus-graphdriver/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bin
13 changes: 13 additions & 0 deletions contrib/docker-nydus-graphdriver/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
all:clear build

.PHONY: build
build:
GOOS=linux go build -v -o bin/nydus_graphdriver .

.PHONY: clear
clear:
rm -f bin/*

.PHONY: static-release
static-release:
GOOS=linux go build -ldflags '-s -w -extldflags "-static"' -v -o bin/nydus_graphdriver .

0 comments on commit 6c48107

Please sign in to comment.