Merge pull request #4580 from dmcgowan/move-release-build-makefile

Move CRI release logic to Makefile
This commit is contained in:
Maksym Pavlenko 2020-09-23 16:41:10 -07:00 committed by GitHub
commit efc67b192d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 29 deletions

View File

@ -126,46 +126,22 @@ jobs:
name: containerd-binaries-${{ matrix.os }} name: containerd-binaries-${{ matrix.os }}
path: src/github.com/containerd/containerd/*.tar.gz* path: src/github.com/containerd/containerd/*.tar.gz*
- name: Install cri-containerd dependencies - name: Make cri-containerd tar
shell: bash shell: bash
env: env:
RUNC_FLAVOR: runc RUNC_FLAVOR: runc
DESTDIR: ${{ github.workspace }}/cri-release
run: | run: |
mkdir ${DESTDIR}
if [[ "${OS}" == "linux" ]]; then 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 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 fi
make cri-cni-release
working-directory: src/github.com/containerd/containerd 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 - name: Save cri-containerd binaries
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: cri-containerd-binaries-${{ matrix.os }} 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: release:
name: Create containerd Release name: Create containerd Release

3
.gitignore vendored
View File

@ -4,4 +4,7 @@ coverage.txt
profile.out profile.out
containerd.test containerd.test
_site/ _site/
releases/*.tar.gz
releases/*.tar.gz.sha256sum
_output/
.vagrant/ .vagrant/

View File

@ -65,6 +65,8 @@ WHALE = "🇩"
ONI = "👹" ONI = "👹"
RELEASE=containerd-$(VERSION:v%=%).${GOOS}-${GOARCH} 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 PKG=github.com/containerd/containerd
@ -120,7 +122,10 @@ BINARIES=$(addprefix bin/,$(COMMANDS))
TESTFLAGS ?= $(TESTFLAGS_RACE) $(EXTRA_TESTFLAGS) TESTFLAGS ?= $(TESTFLAGS_RACE) $(EXTRA_TESTFLAGS)
TESTFLAGS_PARALLEL ?= 8 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 .DEFAULT: default
all: binaries all: binaries
@ -245,13 +250,64 @@ releases/$(RELEASE).tar.gz: $(BINARIES)
@tar -czf releases/$(RELEASE).tar.gz -C releases/$(RELEASE) bin @tar -czf releases/$(RELEASE).tar.gz -C releases/$(RELEASE) bin
@rm -rf releases/$(RELEASE) @rm -rf releases/$(RELEASE)
release: $(BINARIES) releases/$(RELEASE).tar.gz release: releases/$(RELEASE).tar.gz
@echo "$(WHALE) $@" @echo "$(WHALE) $@"
@cd releases && sha256sum $(RELEASE).tar.gz >$(RELEASE).tar.gz.sha256sum @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 clean: ## clean up binaries
@echo "$(WHALE) $@" @echo "$(WHALE) $@"
@rm -f $(BINARIES) @rm -f $(BINARIES)
@if [[ -d $(OUTPUTDIR) ]]; then sudo rm -rf $(OUTPUTDIR); fi
clean-test: ## clean up debris from previously failed tests clean-test: ## clean up debris from previously failed tests
@echo "$(WHALE) $@" @echo "$(WHALE) $@"