From f35f21dd0bd507b3caf371fed26e9f51e16c5225 Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Tue, 22 Sep 2020 22:18:48 -0700 Subject: [PATCH 1/2] Add CRI release functionality to makefile Signed-off-by: Derek McGowan --- .gitignore | 3 +++ Makefile | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0f7a0998c..73ba2c685 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ coverage.txt profile.out containerd.test _site/ +releases/*.tar.gz +releases/*.tar.gz.sha256sum +_output/ .vagrant/ diff --git a/Makefile b/Makefile index 09acf6b4e..254c979e7 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,8 @@ WHALE = "🇩" ONI = "👹" RELEASE=containerd-$(VERSION:v%=%).${GOOS}-${GOARCH} +CRIRELEASE=cri-containerd-$(VERSION:v%=%)-${GOOS}-${GOARCH} +CRICNIRELEASE=cri-containerd-cni-$(VERSION:v%=%)-${GOOS}-${GOARCH} PKG=github.com/containerd/containerd @@ -120,7 +122,10 @@ BINARIES=$(addprefix bin/,$(COMMANDS)) TESTFLAGS ?= $(TESTFLAGS_RACE) $(EXTRA_TESTFLAGS) TESTFLAGS_PARALLEL ?= 8 -.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install uninstall vendor release mandir install-man genman +OUTPUTDIR = $(join $(ROOTDIR), _output) +CRIDIR=$(OUTPUTDIR)/cri + +.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install uninstall vendor release mandir install-man genman install-cri-deps cri-release cri-cni-release .DEFAULT: default all: binaries @@ -245,13 +250,64 @@ releases/$(RELEASE).tar.gz: $(BINARIES) @tar -czf releases/$(RELEASE).tar.gz -C releases/$(RELEASE) bin @rm -rf releases/$(RELEASE) -release: $(BINARIES) releases/$(RELEASE).tar.gz +release: releases/$(RELEASE).tar.gz @echo "$(WHALE) $@" @cd releases && sha256sum $(RELEASE).tar.gz >$(RELEASE).tar.gz.sha256sum +ifeq ($(GOOS),windows) +install-cri-deps: $(BINARIES) + mkdir -p $(CRIDIR) + DESTDIR=$(CRIDIR) script/setup/install-cni-windows + cp bin/* $(CRIDIR) +else +install-cri-deps: $(BINARIES) + @sudo rm -rf ${CRIDIR} + @sudo install -d ${CRIDIR}/usr/local/bin + @sudo install -D -m 755 bin/* ${CRIDIR}/usr/local/bin + @sudo install -d ${CRIDIR}/opt/containerd/cluster + @sudo cp -r contrib/gce ${CRIDIR}/opt/containerd/cluster/ + @sudo install -d ${CRIDIR}/etc/systemd/system + @sudo install -m 644 containerd.service ${CRIDIR}/etc/systemd/system + echo "CONTAINERD_VERSION: '$(VERSION:v%=%)'" | sudo tee ${CRIDIR}/opt/containerd/cluster/version + + DESTDIR=$(CRIDIR) USESUDO=true script/setup/install-runc + DESTDIR=$(CRIDIR) script/setup/install-cni + DESTDIR=$(CRIDIR) script/setup/install-critools + + @sudo install -d $(CRIDIR)/bin + @sudo install $(BINARIES) $(CRIDIR)/bin +endif + +ifeq ($(GOOS),windows) +releases/$(CRIRELEASE).tar.gz: install-cri-deps + @echo "$(WHALE) $@" + @cd $(CRIDIR) && tar -czf ../../releases/$(CRIRELEASE).tar.gz * + +releases/$(CRICNIRELEASE).tar.gz: install-cri-deps + @echo "$(WHALE) $@" + @cd $(CRIDIR) && tar -czf ../../releases/$(CRICNIRELEASE).tar.gz * +else +releases/$(CRIRELEASE).tar.gz: install-cri-deps + @echo "$(WHALE) $@" + @tar -czf releases/$(CRIRELEASE).tar.gz -C $(CRIDIR) etc/crictl.yaml etc/systemd usr opt/containerd + +releases/$(CRICNIRELEASE).tar.gz: install-cri-deps + @echo "$(WHALE) $@" + @tar -czf releases/$(CRICNIRELEASE).tar.gz -C $(CRIDIR) etc usr opt +endif + +cri-release: releases/$(CRIRELEASE).tar.gz + @echo "$(WHALE) $@" + @cd releases && sha256sum $(CRIRELEASE).tar.gz >$(CRIRELEASE).tar.gz.sha256sum + +cri-cni-release: releases/$(CRICNIRELEASE).tar.gz + @echo "$(WHALE) $@" + @cd releases && sha256sum $(CRICNIRELEASE).tar.gz >$(CRICNIRELEASE).tar.gz.sha256sum + clean: ## clean up binaries @echo "$(WHALE) $@" @rm -f $(BINARIES) + @if [[ -d $(OUTPUTDIR) ]]; then sudo rm -rf $(OUTPUTDIR); fi clean-test: ## clean up debris from previously failed tests @echo "$(WHALE) $@" From 241be70250b4cde1b84f5720dec19410c57d4821 Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Tue, 22 Sep 2020 23:00:19 -0700 Subject: [PATCH 2/2] Move github releases to use Makefile for cri release Signed-off-by: Derek McGowan --- .github/workflows/release.yml | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 243c7d5d9..ba3c7b070 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -126,46 +126,22 @@ jobs: name: containerd-binaries-${{ matrix.os }} path: src/github.com/containerd/containerd/*.tar.gz* - - name: Install cri-containerd dependencies + - name: Make cri-containerd tar shell: bash env: RUNC_FLAVOR: runc - DESTDIR: ${{ github.workspace }}/cri-release run: | - mkdir ${DESTDIR} if [[ "${OS}" == "linux" ]]; then - sudo install -d ${DESTDIR}/usr/local/bin - sudo install -D -m 755 bin/* ${DESTDIR}/usr/local/bin - sudo install -d ${DESTDIR}/opt/containerd/cluster - sudo cp -r contrib/gce ${DESTDIR}/opt/containerd/cluster/ - sudo install -d ${DESTDIR}/etc/systemd/system - sudo install -m 644 containerd.service ${DESTDIR}/etc/systemd/system - echo "CONTAINERD_VERSION: '${RELEASE_VER#v}'" | sudo tee ${DESTDIR}/opt/containerd/cluster/version - sudo PATH=$PATH script/setup/install-seccomp - USESUDO=true script/setup/install-runc - script/setup/install-cni - script/setup/install-critools - elif [[ "${OS}" == "windows" ]]; then - script/setup/install-cni-windows - cp bin/* ${DESTDIR}/ fi + make cri-cni-release working-directory: src/github.com/containerd/containerd - - name: Make cri-containerd tar - shell: bash - run: | - TARFILE="cri-containerd-cni-${RELEASE_VER#v}-${OS}-amd64.tar.gz" - [[ "${OS}" == "linux" ]] && tar czf ${TARFILE} etc usr opt - [[ "${OS}" == "windows" ]] && tar czf ${TARFILE} * - sha256sum ${TARFILE} >${TARFILE}.sha256sum - working-directory: cri-release - - name: Save cri-containerd binaries uses: actions/upload-artifact@v2 with: name: cri-containerd-binaries-${{ matrix.os }} - path: cri-release/cri-containerd-cni-*.tar.gz* + path: src/github.com/containerd/containerd/releases/cri-containerd-cni-*.tar.gz* release: name: Create containerd Release