Skip to content

Commit efc67b1

Browse files
authored
Merge pull request #4580 from dmcgowan/move-release-build-makefile
Move CRI release logic to Makefile
2 parents 4e5ce76 + 241be70 commit efc67b1

3 files changed

Lines changed: 64 additions & 29 deletions

File tree

.github/workflows/release.yml

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -126,46 +126,22 @@ jobs:
126126
name: containerd-binaries-${{ matrix.os }}
127127
path: src/github.com/containerd/containerd/*.tar.gz*
128128

129-
- name: Install cri-containerd dependencies
129+
- name: Make cri-containerd tar
130130
shell: bash
131131
env:
132132
RUNC_FLAVOR: runc
133-
DESTDIR: ${{ github.workspace }}/cri-release
134133
run: |
135-
mkdir ${DESTDIR}
136134
if [[ "${OS}" == "linux" ]]; then
137-
sudo install -d ${DESTDIR}/usr/local/bin
138-
sudo install -D -m 755 bin/* ${DESTDIR}/usr/local/bin
139-
sudo install -d ${DESTDIR}/opt/containerd/cluster
140-
sudo cp -r contrib/gce ${DESTDIR}/opt/containerd/cluster/
141-
sudo install -d ${DESTDIR}/etc/systemd/system
142-
sudo install -m 644 containerd.service ${DESTDIR}/etc/systemd/system
143-
echo "CONTAINERD_VERSION: '${RELEASE_VER#v}'" | sudo tee ${DESTDIR}/opt/containerd/cluster/version
144-
145135
sudo PATH=$PATH script/setup/install-seccomp
146-
USESUDO=true script/setup/install-runc
147-
script/setup/install-cni
148-
script/setup/install-critools
149-
elif [[ "${OS}" == "windows" ]]; then
150-
script/setup/install-cni-windows
151-
cp bin/* ${DESTDIR}/
152136
fi
137+
make cri-cni-release
153138
working-directory: src/github.com/containerd/containerd
154139

155-
- name: Make cri-containerd tar
156-
shell: bash
157-
run: |
158-
TARFILE="cri-containerd-cni-${RELEASE_VER#v}-${OS}-amd64.tar.gz"
159-
[[ "${OS}" == "linux" ]] && tar czf ${TARFILE} etc usr opt
160-
[[ "${OS}" == "windows" ]] && tar czf ${TARFILE} *
161-
sha256sum ${TARFILE} >${TARFILE}.sha256sum
162-
working-directory: cri-release
163-
164140
- name: Save cri-containerd binaries
165141
uses: actions/upload-artifact@v2
166142
with:
167143
name: cri-containerd-binaries-${{ matrix.os }}
168-
path: cri-release/cri-containerd-cni-*.tar.gz*
144+
path: src/github.com/containerd/containerd/releases/cri-containerd-cni-*.tar.gz*
169145

170146
release:
171147
name: Create containerd Release

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ coverage.txt
44
profile.out
55
containerd.test
66
_site/
7+
releases/*.tar.gz
8+
releases/*.tar.gz.sha256sum
9+
_output/
710
.vagrant/

Makefile

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ WHALE = "🇩"
6565
ONI = "👹"
6666

6767
RELEASE=containerd-$(VERSION:v%=%).${GOOS}-${GOARCH}
68+
CRIRELEASE=cri-containerd-$(VERSION:v%=%)-${GOOS}-${GOARCH}
69+
CRICNIRELEASE=cri-containerd-cni-$(VERSION:v%=%)-${GOOS}-${GOARCH}
6870

6971
PKG=github.com/containerd/containerd
7072

@@ -120,7 +122,10 @@ BINARIES=$(addprefix bin/,$(COMMANDS))
120122
TESTFLAGS ?= $(TESTFLAGS_RACE) $(EXTRA_TESTFLAGS)
121123
TESTFLAGS_PARALLEL ?= 8
122124

123-
.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install uninstall vendor release mandir install-man genman
125+
OUTPUTDIR = $(join $(ROOTDIR), _output)
126+
CRIDIR=$(OUTPUTDIR)/cri
127+
128+
.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
124129
.DEFAULT: default
125130

126131
all: binaries
@@ -245,13 +250,64 @@ releases/$(RELEASE).tar.gz: $(BINARIES)
245250
@tar -czf releases/$(RELEASE).tar.gz -C releases/$(RELEASE) bin
246251
@rm -rf releases/$(RELEASE)
247252

248-
release: $(BINARIES) releases/$(RELEASE).tar.gz
253+
release: releases/$(RELEASE).tar.gz
249254
@echo "$(WHALE) $@"
250255
@cd releases && sha256sum $(RELEASE).tar.gz >$(RELEASE).tar.gz.sha256sum
251256

257+
ifeq ($(GOOS),windows)
258+
install-cri-deps: $(BINARIES)
259+
mkdir -p $(CRIDIR)
260+
DESTDIR=$(CRIDIR) script/setup/install-cni-windows
261+
cp bin/* $(CRIDIR)
262+
else
263+
install-cri-deps: $(BINARIES)
264+
@sudo rm -rf ${CRIDIR}
265+
@sudo install -d ${CRIDIR}/usr/local/bin
266+
@sudo install -D -m 755 bin/* ${CRIDIR}/usr/local/bin
267+
@sudo install -d ${CRIDIR}/opt/containerd/cluster
268+
@sudo cp -r contrib/gce ${CRIDIR}/opt/containerd/cluster/
269+
@sudo install -d ${CRIDIR}/etc/systemd/system
270+
@sudo install -m 644 containerd.service ${CRIDIR}/etc/systemd/system
271+
echo "CONTAINERD_VERSION: '$(VERSION:v%=%)'" | sudo tee ${CRIDIR}/opt/containerd/cluster/version
272+
273+
DESTDIR=$(CRIDIR) USESUDO=true script/setup/install-runc
274+
DESTDIR=$(CRIDIR) script/setup/install-cni
275+
DESTDIR=$(CRIDIR) script/setup/install-critools
276+
277+
@sudo install -d $(CRIDIR)/bin
278+
@sudo install $(BINARIES) $(CRIDIR)/bin
279+
endif
280+
281+
ifeq ($(GOOS),windows)
282+
releases/$(CRIRELEASE).tar.gz: install-cri-deps
283+
@echo "$(WHALE) $@"
284+
@cd $(CRIDIR) && tar -czf ../../releases/$(CRIRELEASE).tar.gz *
285+
286+
releases/$(CRICNIRELEASE).tar.gz: install-cri-deps
287+
@echo "$(WHALE) $@"
288+
@cd $(CRIDIR) && tar -czf ../../releases/$(CRICNIRELEASE).tar.gz *
289+
else
290+
releases/$(CRIRELEASE).tar.gz: install-cri-deps
291+
@echo "$(WHALE) $@"
292+
@tar -czf releases/$(CRIRELEASE).tar.gz -C $(CRIDIR) etc/crictl.yaml etc/systemd usr opt/containerd
293+
294+
releases/$(CRICNIRELEASE).tar.gz: install-cri-deps
295+
@echo "$(WHALE) $@"
296+
@tar -czf releases/$(CRICNIRELEASE).tar.gz -C $(CRIDIR) etc usr opt
297+
endif
298+
299+
cri-release: releases/$(CRIRELEASE).tar.gz
300+
@echo "$(WHALE) $@"
301+
@cd releases && sha256sum $(CRIRELEASE).tar.gz >$(CRIRELEASE).tar.gz.sha256sum
302+
303+
cri-cni-release: releases/$(CRICNIRELEASE).tar.gz
304+
@echo "$(WHALE) $@"
305+
@cd releases && sha256sum $(CRICNIRELEASE).tar.gz >$(CRICNIRELEASE).tar.gz.sha256sum
306+
252307
clean: ## clean up binaries
253308
@echo "$(WHALE) $@"
254309
@rm -f $(BINARIES)
310+
@if [[ -d $(OUTPUTDIR) ]]; then sudo rm -rf $(OUTPUTDIR); fi
255311

256312
clean-test: ## clean up debris from previously failed tests
257313
@echo "$(WHALE) $@"

0 commit comments

Comments
 (0)