attempt builds via buildx
This commit is contained in:
parent
a3d4cda3e8
commit
4795defd9b
|
|
@ -0,0 +1,4 @@
|
|||
chart
|
||||
dev
|
||||
examples
|
||||
node_modules
|
||||
47
.travis.yml
47
.travis.yml
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
23
Dockerfile
23
Dockerfile
|
|
@ -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 && \
|
||||
|
|
|
|||
|
|
@ -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/*
|
||||
|
|
@ -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}"
|
||||
Loading…
Reference in New Issue