attempt builds via buildx

This commit is contained in:
Travis Glenn Hansen 2020-02-12 09:16:10 -07:00
parent a3d4cda3e8
commit 4795defd9b
6 changed files with 111 additions and 45 deletions

4
.dockerignore Normal file
View File

@ -0,0 +1,4 @@
chart
dev
examples
node_modules

View File

@ -1,23 +1,30 @@
# if: tag IS present
language: node_js
node_js:
- "12"
dist: bionic
sudo: required
services:
- docker
install: true
before_install:
- curl -fsSL https://get.docker.com | sh
- echo '{"experimental":"enabled"}' | sudo tee /etc/docker/daemon.json
- mkdir -p $HOME/.docker
- echo '{"experimental":"enabled"}' | sudo tee $HOME/.docker/config.json
- sudo service docker start
- docker info
install:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx create --name xbuilder --use
- docker buildx inspect --bootstrap
script: true
deploy:
- provider: script
script: bash .travis/docker-release.sh
skip_cleanup: true
on:
repo: democratic-csi/democratic-csi
all_branches: true
condition: $TRAVIS_BRANCH =~ ^master|next$
- provider: script
script: bash .travis/docker-release.sh
skip_cleanup: true
on:
repo: democratic-csi/democratic-csi
tags: true
- provider: script
script: bash .travis/docker-release.sh
skip_cleanup: true
on:
repo: democratic-csi/democratic-csi
all_branches: true
condition: $TRAVIS_BRANCH =~ ^master|next$
- provider: script
script: bash .travis/docker-release.sh
skip_cleanup: true
on:
repo: democratic-csi/democratic-csi
tags: true

View File

@ -6,17 +6,17 @@ export DOCKER_ORG="democraticcsi"
export DOCKER_PROJECT="democratic-csi"
export DOCKER_REPO="${DOCKER_ORG}/${DOCKER_PROJECT}"
if [[ -n "${TRAVIS_TAG}" ]];then
docker build --pull -t ${DOCKER_REPO}:${TRAVIS_TAG} .
docker push ${DOCKER_REPO}:${TRAVIS_TAG}
elif [[ -n "${TRAVIS_BRANCH}" ]];then
if [[ "${TRAVIS_BRANCH}" == "master" ]];then
docker build --pull -t ${DOCKER_REPO}:latest .
docker push ${DOCKER_REPO}:latest
else
docker build --pull -t ${DOCKER_REPO}:${TRAVIS_BRANCH} .
docker push ${DOCKER_REPO}:${TRAVIS_BRANCH}
fi
if [[ -n "${TRAVIS_TAG}" ]]; then
docker buildx build --progress plain --pull --push --platform linux/amd64,linux/arm/v7,linux/arm64 -t ${DOCKER_REPO}:${TRAVIS_TAG} .
docker push ${DOCKER_REPO}:${TRAVIS_TAG}
elif [[ -n "${TRAVIS_BRANCH}" ]]; then
if [[ "${TRAVIS_BRANCH}" == "master" ]]; then
docker buildx build --progress plain --pull --push --platform linux/amd64,linux/arm/v7,linux/arm64 -t ${DOCKER_REPO}:latest .
docker push ${DOCKER_REPO}:latest
else
docker buildx build --progress plain --pull --push --platform linux/amd64,linux/arm/v7,linux/arm64 -t ${DOCKER_REPO}:${TRAVIS_BRANCH} .
docker push ${DOCKER_REPO}:${TRAVIS_BRANCH}
fi
else
:
:
fi

View File

@ -1,23 +1,20 @@
FROM debian:10-slim
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
ENV LANG=en_US.utf8 NODE_VERSION=v12.15.0
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM"
# install node
ENV NODE_VERSION=v12.13.1
ENV NODE_DISTRO=linux-x64
RUN apt-get update && \
apt-get install -y wget xz-utils && \
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz > /dev/null 2>&1 && \
mkdir -p /usr/local/lib/nodejs && \
tar -xJf node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz -C /usr/local/lib/nodejs && \
rm node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz && \
rm -rf /var/lib/apt/lists/*
ENV PATH=/usr/local/lib/nodejs/node-${NODE_VERSION}-${NODE_DISTRO}/bin:$PATH
RUN apt-get update && apt-get install -y wget xz-utils
ADD docker/node-installer.sh /usr/local/sbin
RUN chmod +x /usr/local/sbin/node-installer.sh && node-installer.sh
ENV PATH=/usr/local/lib/nodejs/bin:$PATH
# node service requirements
RUN apt-get update && \

35
docker/node-installer.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
set -e
set -x
PLATFORM_TYPE=${1}
if [[ "${PLATFORM_TYPE}" == "build" ]]; then
PLATFORM=$BUILDPLATFORM
else
PLATFORM=$TARGETPLATFORM
fi
if [[ "x${PLATFORM}" == "x" ]]; then
PLATFORM="linux/amd64"
fi
if [ "$PLATFORM" = "linux/amd64" ]; then
export NODE_DISTRO="linux-x64"
elif [ "$PLATFORM" = "linux/arm64" ]; then
export NODE_DISTRO="linux-arm64"
elif [ "$PLATFORM" = "linux/arm/v7" ]; then
export NODE_DISTRO="linux-armv7l"
else
echo "unsupported/unknown PLATFORM ${PLATFORM}"
exit 1
fi
echo "I am installing node $NODE_VERSION $NODE_DISTRO"
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz >/dev/null 2>&1
mkdir -p /usr/local/lib/nodejs
tar -xJf node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz -C /usr/local/lib/nodejs --strip-components=1
rm node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz
rm -rf /var/lib/apt/lists/*

View File

@ -0,0 +1,23 @@
#!/bin/bash
set -e
set -x
PLATFORM=$TARGETPLATFORM
if [[ "x${PLATFORM}" == "x" ]]; then
PLATFORM="linux/amd64"
fi
if [ "$PLATFORM" = "linux/amd64" ]; then
export NODE_ARCH="x64"
elif [ "$PLATFORM" = "linux/arm64" ]; then
export NODE_ARCH="arm64"
elif [ "$PLATFORM" = "linux/arm/v7" ]; then
export NODE_ARCH="armv7l"
else
echo "unsupported/unknown PLATFORM ${PLATFORM}"
exit 1
fi
npm install --target_arch="${NODE_ARCH}"