23 changed files with 11559 additions and 2208 deletions
@ -1,40 +1,251 @@
|
||||
// |
||||
// tweakables |
||||
// |
||||
|
||||
local registry = "084037375216.dkr.ecr.us-east-2.amazonaws.com"; |
||||
local build_channel = "zerotier-builds"; |
||||
local release_channel = "zerotier-releases"; |
||||
|
||||
local targets = [ |
||||
{ "os": "linux", "name": "sid", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el7", "isas": [ "386", "amd64", "ppc64le"], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "amazon", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "amazon", "name": "amzn2022", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc38", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "bionic", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "xenial", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "trusty", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "bookworm", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "tag"] }, |
||||
{ "os": "linux", distro: "debian", "name": "bullseye", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "buster", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "stretch", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "jessie", "isas": [ "386", "armv7", "amd64" ], "events": [ "tag" ] }, |
||||
|
||||
// { "os": "windows", distro: "windows", "name": "windows", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] }, |
||||
// { "os": "darwin", distro: "darwin", "name": "darwin", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] }, |
||||
|
||||
]; |
||||
|
||||
local Build(platform, os, isa, events) = { |
||||
local less_targets = [ |
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
]; |
||||
|
||||
local master_targets = [ |
||||
// |
||||
// copypasta from here |
||||
// |
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "redhat", "name": "el7", "isas": [ "386", "amd64", "ppc64le"], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "amazon", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "amazon", "name": "amzn2022", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc38", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "fedora", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "bionic", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "xenial", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "ubuntu", "name": "trusty", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "sid", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "bookworm", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "bullseye", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "buster", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "stretch", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "linux", distro: "debian", "name": "jessie", "isas": [ "386", "armv7", "amd64" ], "events": [ "push", "tag", "custom" ] }, |
||||
{ "os": "windows", distro: "windows", "name": "win2k22", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] } |
||||
]; |
||||
|
||||
// |
||||
// functions |
||||
// |
||||
|
||||
local pipeline_type(os) = if os == "darwin" then "exec" else "docker"; |
||||
local builder_image(os) = if os == "linux" then registry + "/honda-builder" else registry + "/windows-builder"; |
||||
local tester_image(os) = if os == "linux" then registry + "/honda-builder" else registry + "/windows-tester"; |
||||
local build_step_volumes(os) = if os == "linux" then [ { name: "zerotier-builds", path: "/zerotier-builds" } ] else []; |
||||
local release_step_volumes(os) = if os == "linux" then [ { name: "zerotier-releases", path: "/zerotier-releases" } ] else []; |
||||
local host_volumes(os) = if os == "linux" then [ |
||||
{ name: "zerotier-builds", host: { path: "/zerotier-builds" } }, |
||||
{ name: "zerotier-releases", host: { path: "/zerotier-releases" } }, |
||||
] else []; |
||||
|
||||
local index_image(distro) = |
||||
if distro == "debian" || distro == "ubuntu" then |
||||
registry + "/apt-builder" |
||||
else if distro == "redhat" || distro == "fedora" || distro == "amazon" then |
||||
registry + "/dnf-builder" |
||||
else if distro == "windows" then |
||||
registry + "/msi-builder" |
||||
; |
||||
|
||||
local copy_commands(os, distro, name, isa, version) = |
||||
if os == "linux" then [ |
||||
std.join(" ", [ "./ci/scripts/publish.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ]) |
||||
] |
||||
else if os == "windows" then [ |
||||
"C:\\scripts\\fix-ec2-metadata.ps1", |
||||
"Get-ChildItem windows", |
||||
// "aws s3 cp windows\\bytey-SetupFiles\\bytey.msi s3://zerotier-builds/windows/" + version + "/bytey.msi", |
||||
] else if os == "darwin" then [ |
||||
"echo hello" |
||||
] |
||||
; |
||||
|
||||
local index_commands(os, channel, distro, name, isas) = |
||||
if os == "linux" then |
||||
[ "/usr/local/bin/index " + channel + " " + distro + " " + name + " " + std.join(" ", isas) ] |
||||
else if os == "windows" then |
||||
[ "Get-ChildItem -Recurse windows" ] |
||||
; |
||||
|
||||
local build_commands(os, distro, name, isa, version) = |
||||
if os == "linux" then |
||||
[ std.join(" ", [ "./ci/scripts/build.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ]) ] |
||||
else |
||||
if os == "windows" then |
||||
[ "windows/build.ps1", "windows/package.ps1" ] |
||||
else |
||||
if os == "darwin" then |
||||
[ "whoami" ] |
||||
; |
||||
|
||||
local test_commands(os, distro, name, isa, version) = |
||||
if os == "linux" then |
||||
[ std.join(" ", [ "./ci/scripts/test.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ]) ] |
||||
else |
||||
if os == "windows" then |
||||
[ "windows/testpackage.ps1 " + version ] |
||||
; |
||||
|
||||
// |
||||
// render |
||||
// |
||||
|
||||
local Build(os, distro, name, isa, events) = { |
||||
"kind": "pipeline", |
||||
"type": "docker", |
||||
"type": pipeline_type(os), |
||||
"name": std.join(" ", [ name, isa, "build" ]), |
||||
"pull": "always", |
||||
"name": platform + " " + isa + " " + "build", |
||||
"clone": { "depth": 1 }, |
||||
"clone": { "depth": 1, [ if os == "darwin" then "disable" ]: true }, |
||||
"steps": [ |
||||
{ |
||||
"name": "build", |
||||
"image": registry + "/honda-builder", |
||||
"commands": [ |
||||
"aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin " + registry, |
||||
"./ci/scripts/build.sh " + platform + " " + isa + " " + "100.0.0+${DRONE_COMMIT_SHA:0:8}" + " " + "${DRONE_BUILD_EVENT}" |
||||
] |
||||
"image": builder_image(os), |
||||
"commands": build_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"), |
||||
"when": { "event": [ "push" ]}, |
||||
}, |
||||
{ |
||||
"name": "release", |
||||
"image": builder_image(os), |
||||
"commands": build_commands(os, distro, name, isa, "${DRONE_TAG}"), |
||||
"when": { "event": [ "tag" ]}, |
||||
}, |
||||
{ |
||||
"name": "copy build", |
||||
"image": builder_image(os), |
||||
"commands": copy_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"), |
||||
"volumes": build_step_volumes(os), |
||||
"when": { "event": [ "push" ]}, |
||||
}, |
||||
// { |
||||
// "name": "list", |
||||
// "image": registry + "/honda-builder", |
||||
// "commands": [ "ls -la " + platform ] |
||||
// }, |
||||
], |
||||
[ if isa == "arm64" || isa == "armv7" then "platform" ]: { os: os, arch: "arm64" }, |
||||
{ |
||||
"name": "copy relase", |
||||
"image": builder_image(os), |
||||
"commands": copy_commands(os, distro, name, isa, "${DRONE_TAG}"), |
||||
"volumes": release_step_volumes(os), |
||||
"when": { "event": [ "tag" ]}, |
||||
}, |
||||
], |
||||
"volumes": host_volumes(os), |
||||
"platform": { "os": os, [ if isa == "arm64" || isa == "armv7" then "arch" ]: "arm64" }, |
||||
"trigger": { "event": events } |
||||
}; |
||||
|
||||
local Test(os, distro, name, isa, events) = { |
||||
"kind": "pipeline", |
||||
"type": pipeline_type(os), |
||||
"name": std.join(" ", [ name, isa, "test"]), |
||||
"pull": "always", |
||||
"clone": { "depth": 1 }, |
||||
"steps": [ |
||||
{ |
||||
"name": "test build", |
||||
"image": tester_image(os), |
||||
"volumes": build_step_volumes(os), |
||||
"commands": test_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"), |
||||
"when": { "event": [ "push" ]}, |
||||
}, |
||||
{ |
||||
"name": "test release", |
||||
"image": tester_image(os), |
||||
"volumes": release_step_volumes(os), |
||||
"commands": test_commands(os, distro, name, isa, "${DRONE_TAG}"), |
||||
"when": { "event": [ "tag" ]}, |
||||
}, |
||||
], |
||||
"volumes": host_volumes(os), |
||||
"platform": { "os": os, [ if isa == "arm64" || isa == "armv7" then "arch" ]: "arm64" }, |
||||
"depends_on": [ std.join(" ", [ name, "index" ]) ], |
||||
"trigger": { "event": events } |
||||
}; |
||||
|
||||
// puttin on the bits |
||||
local Index(p) = { |
||||
"kind": "pipeline", |
||||
"type": pipeline_type(p.os), |
||||
"name": std.join(" ", [ p.name, "index" ]), |
||||
"pull": "always", |
||||
"clone": { "depth": 1 }, |
||||
"steps": [ |
||||
{ |
||||
"name": "index build", |
||||
"image": index_image(p.distro), |
||||
"commands": index_commands(p.os, "zerotier-builds", p.distro, p.name, p.isas), |
||||
"volumes": build_step_volumes(p.os), |
||||
"environment":{ "GPG_PRIVATE_KEY": { from_secret: "gpg-private-key" }}, |
||||
"when": { "event": [ "push" ]}, |
||||
}, |
||||
{ |
||||
"name": "index release", |
||||
"image": index_image(p.distro), |
||||
"commands": index_commands(p.os, "zerotier-releases", p.distro, p.name, p.isas), |
||||
"volumes": release_step_volumes(p.os), |
||||
"environment":{ "GPG_PRIVATE_KEY": { from_secret: "gpg-private-key" }}, |
||||
"when": { "event": [ "tag" ]}, |
||||
}, |
||||
], |
||||
"volumes": host_volumes(p.os), |
||||
"platform": { "os": p.os }, |
||||
depends_on: std.flattenArrays([ [ std.join(" ", [ p.name, isa, "build" ]) ] for isa in p.isas ]), |
||||
"trigger": { "event": p.events } |
||||
}; |
||||
|
||||
// |
||||
// print |
||||
// |
||||
|
||||
std.flattenArrays([ |
||||
[ |
||||
Build(p.name, p.os, isa, p.events) |
||||
for isa in p.isas |
||||
] |
||||
for p in targets |
||||
]) |
||||
[ |
||||
Build(p.os, p.distro, p.name, isa, p.events) |
||||
for isa in p.isas |
||||
] + |
||||
[ |
||||
Index(p) |
||||
] |
||||
for p in targets |
||||
]) + |
||||
std.flattenArrays([ |
||||
[ |
||||
Test(p.os, p.distro, p.name, isa, p.events) |
||||
for isa in p.isas |
||||
] |
||||
for p in targets |
||||
]) |
||||
|
||||
@ -0,0 +1,14 @@
|
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
kick |
||||
@ -0,0 +1,13 @@
|
||||
ARG ZT_NAME |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-builder as builder |
||||
WORKDIR /work/build |
||||
COPY . . |
||||
RUN pwd |
||||
RUN ls -la . |
||||
RUN make clean |
||||
RUN make debian |
||||
RUN ls -ls /work |
||||
|
||||
FROM scratch AS export |
||||
ARG ZT_NAME |
||||
COPY --from=builder /work/*.deb ./${ZT_NAME}/ |
||||
@ -0,0 +1,9 @@
|
||||
ARG ZT_NAME |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-builder as builder |
||||
WORKDIR /root/rpmbuild/BUILD |
||||
COPY . . |
||||
RUN make redhat |
||||
|
||||
FROM scratch AS export |
||||
ARG ZT_NAME |
||||
COPY --from=builder /root/rpmbuild/RPMS/*/*.rpm ./${ZT_NAME}/ |
||||
@ -0,0 +1,13 @@
|
||||
ARG ZT_NAME |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-tester |
||||
ARG BASEURL |
||||
ARG VERSION |
||||
ARG DEB_ARCH |
||||
ARG ZT_NAME |
||||
ARG DISTRO |
||||
RUN curl -s http://${BASEURL}/key.gpg -o /etc/apt/trusted.gpg.d/zerotier.gpg |
||||
RUN echo "deb [arch=${DEB_ARCH} signed-by=/etc/apt/trusted.gpg.d/zerotier.gpg] http://${BASEURL}/${DISTRO} ${ZT_NAME} main" > /etc/apt/sources.list.d/zerotier.list |
||||
RUN apt-get -qq update |
||||
RUN apt-get -qq install zerotier-one=${VERSION} |
||||
|
||||
RUN ldd $(which zerotier-cli) |
||||
@ -0,0 +1,4 @@
|
||||
ARG DOCKER_ARCH |
||||
FROM --platform=linux/${DOCKER_ARCH} centos:6 |
||||
RUN printf "[C6.10-base]\nname=CentOS-6.10 - Base\nbaseurl=http://vault.epel.cloud/6.10/os/\$basearch/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6\nenabled=1\nmetadata_expire=never\n" > /etc/yum.repos.d/CentOS-Base.repo |
||||
RUN yum -y install curl |
||||
@ -0,0 +1,17 @@
|
||||
ARG ZT_NAME |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-tester |
||||
ARG BASEURL |
||||
ARG VERSION |
||||
ARG DEB_ARCH |
||||
ARG ZT_NAME |
||||
ARG DISTRO |
||||
ARG DNF_ARCH |
||||
RUN curl -s http://${BASEURL}/key.asc -o /etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier |
||||
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier |
||||
RUN rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' |
||||
RUN printf "[zerotier]\nname=zerotier\nbaseurl=http://${BASEURL}/${DISTRO}/${ZT_NAME}/$basearch/\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier\n" > /etc/yum.repos.d/zerotier.repo |
||||
|
||||
# RUN yum -v repolist |
||||
RUN setarch ${DNF_ARCH} yum -y install zerotier-one-${VERSION} |
||||
RUN file $(which zerotier-cli) |
||||
RUN ldd $(which zerotier-cli) |
||||
@ -1,10 +0,0 @@
|
||||
ARG PLATFORM |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${PLATFORM}-builder as stage |
||||
WORKDIR /work/build |
||||
COPY . . |
||||
RUN make debian |
||||
RUN ls -ls /work |
||||
|
||||
FROM scratch AS export |
||||
ARG PLATFORM |
||||
COPY --from=stage /work/*.deb ./${PLATFORM}/ |
||||
@ -1,5 +0,0 @@
|
||||
ARG PLATFORM |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${PLATFORM}-builder as stage |
||||
WORKDIR /work |
||||
COPY . . |
||||
RUN make |
||||
@ -1,9 +0,0 @@
|
||||
ARG PLATFORM |
||||
FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${PLATFORM}-builder as stage |
||||
WORKDIR /root/rpmbuild/BUILD |
||||
COPY . . |
||||
RUN make redhat |
||||
|
||||
FROM scratch AS export |
||||
ARG PLATFORM |
||||
COPY --from=stage /root/rpmbuild/RPMS/*/*.rpm ./${PLATFORM}/ |
||||
@ -0,0 +1,63 @@
|
||||
|
||||
case $ZT_NAME in |
||||
el*|fc*|amzn*) |
||||
export PKGFMT=rpm |
||||
;; |
||||
*) |
||||
export PKGFMT=deb |
||||
esac |
||||
|
||||
case $ZT_ISA in |
||||
386) |
||||
export DOCKER_ARCH=386 |
||||
export DEB_ARCH=i386 |
||||
export DNF_ARCH=i686 |
||||
export RUST_TRIPLET=i686-unknown-linux-gnu |
||||
;; |
||||
amd64) |
||||
export DOCKER_ARCH=amd64 |
||||
export DEB_ARCH=amd64 |
||||
export DNF_ARCH=x86_64 |
||||
export RUST_TRIPLET=x86_64-unknown-linux-gnu |
||||
;; |
||||
armv7) |
||||
export DOCKER_ARCH=arm/v7 |
||||
export DNF_ARCH=armv7 |
||||
export DEB_ARCH=armhf |
||||
export RUST_TRIPLET=armv7-unknown-linux-gnueabihf |
||||
;; |
||||
arm64) |
||||
export DOCKER_ARCH=arm64/v8 |
||||
export DEB_ARCH=arm64 |
||||
export DNF_ARCH=linux64 |
||||
export RUST_TRIPLET=aarch64-unknown-linux-gnu |
||||
;; |
||||
riscv64) |
||||
export DOCKER_ARCH=riscv64 |
||||
export DEB_ARCH=riscv64 |
||||
export DNF_ARCH=riscv64 |
||||
export RUST_TRIPLET=riscv64gc-unknown-linux-gnu |
||||
;; |
||||
ppc64le) |
||||
export DOCKER_ARCH=ppc64le |
||||
export DEB_ARCH=ppc64el |
||||
export DNF_ARCH=ppc64le |
||||
export RUST_TRIPLET=powerpc64le-unknown-linux-gnu |
||||
;; |
||||
mips64le) |
||||
export DOCKER_ARCH=mips64le |
||||
export DEB_ARCH=mips64le |
||||
export DNF_ARCH=mips64le |
||||
export RUST_TRIPLET=mips64el-unknown-linux-gnuabi64 |
||||
;; |
||||
s390x) |
||||
export DOCKER_ARCH=s390x |
||||
export DEB_ARCH=s390x |
||||
export DNF_ARCH=s390x |
||||
export RUST_TRIPLET=s390x-unknown-linux-gnu |
||||
;; |
||||
*) |
||||
echo "ERROR: could not determine architecture settings. PLEASE FIX ME" |
||||
exit 1 |
||||
;; |
||||
esac |
||||
@ -0,0 +1,38 @@
|
||||
#!/bin/bash |
||||
set -euo pipefail |
||||
IFS=$'\n\t' |
||||
|
||||
ZT_NAME="$1" ; shift |
||||
DISTRO="$1" ; shift |
||||
ZT_ISA="$1" ; shift |
||||
VERSION="$1" ; shift |
||||
BUILD_EVENT="$1" ; shift |
||||
|
||||
source "$(dirname $0)/lib.sh" |
||||
|
||||
if [ ${BUILD_EVENT} == "tag" ]; then |
||||
CHANNEL="zerotier-releases" |
||||
else |
||||
CHANNEL="zerotier-builds" |
||||
fi |
||||
|
||||
function publish_rpm { |
||||
mkdir -p /${CHANNEL}/${DISTRO} |
||||
ls -la /${CHANNEL} |
||||
ls -la . |
||||
cp -a ${ZT_NAME} /${CHANNEL}/${DISTRO} |
||||
} |
||||
|
||||
function publish_deb { |
||||
mkdir -p /${CHANNEL}/${DISTRO}/pool/dists/${ZT_NAME}/main |
||||
cp -a ${ZT_NAME}/* /${CHANNEL}/${DISTRO}/pool/dists/${ZT_NAME}/main |
||||
} |
||||
|
||||
case ${PKGFMT} in |
||||
"rpm") |
||||
publish_rpm |
||||
;; |
||||
"deb") |
||||
publish_deb |
||||
esac |
||||
|
||||
@ -0,0 +1,55 @@
|
||||
#!/bin/bash |
||||
set -euo pipefail |
||||
IFS=$'\n\t' |
||||
|
||||
ZT_NAME="$1" ; shift |
||||
DISTRO="$1" ; shift |
||||
ZT_ISA="$1" ; shift |
||||
VERSION="$1" ; shift |
||||
BUILD_EVENT="$1" ; shift |
||||
|
||||
source "$(dirname $0)/lib.sh" |
||||
|
||||
if [ -f "ci/Dockerfile-test.${ZT_NAME}" ]; then |
||||
DOCKERFILE="ci/Dockerfile-test.${ZT_NAME}" |
||||
else |
||||
DOCKERFILE="ci/Dockerfile-test.${PKGFMT}" |
||||
fi |
||||
|
||||
if [ ${BUILD_EVENT} == "tag" ]; then |
||||
BASEURL="zerotier-releases.home.arpa" |
||||
else |
||||
BASEURL="zerotier-builds.home.arpa" |
||||
fi |
||||
|
||||
echo "#~~~~~~~~~~~~~~~~~~~~" |
||||
echo "$0 variables:" |
||||
echo "nproc: $(nproc)" |
||||
echo "ZT_NAME: ${ZT_NAME}" |
||||
echo "DISTRO: ${DISTRO}" |
||||
echo "ZT_ISA: ${ZT_ISA}" |
||||
echo "VERSION: ${VERSION}" |
||||
echo "BUILD_EVENT: ${BUILD_EVENT}" |
||||
echo "DOCKER_ARCH: ${DOCKER_ARCH}" |
||||
echo "DNF_ARCH: ${DNF_ARCH}" |
||||
echo "RUST_TRIPLET: ${RUST_TRIPLET}" |
||||
echo "PKGFMT: ${PKGFMT}" |
||||
echo "PWD: ${PWD}" |
||||
echo "DOCKERFILE: ${DOCKERFILE}" |
||||
echo "#~~~~~~~~~~~~~~~~~~~~" |
||||
|
||||
# docker pull -q --platform="linux/${DOCKER_ARCH}" 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-tester |
||||
|
||||
docker buildx build \ |
||||
--build-arg BASEURL="${BASEURL}" \ |
||||
--build-arg ZT_NAME="${ZT_NAME}" \ |
||||
--build-arg DISTRO="${DISTRO}" \ |
||||
--build-arg DEB_ARCH="${DEB_ARCH}" \ |
||||
--build-arg DNF_ARCH="${DNF_ARCH}" \ |
||||
--build-arg VERSION="${VERSION}" \ |
||||
--build-arg DOCKER_ARCH="${DOCKER_ARCH}" \ |
||||
--platform "linux/${DOCKER_ARCH}" \ |
||||
--no-cache \ |
||||
-f ${DOCKERFILE} \ |
||||
-t test \ |
||||
. |
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue