mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* Add Drone configuration
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build front-end before testing it
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add packaging step
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Trigger on push
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove some steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Enable steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install Dockerize
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use node image for test-frontend
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Increase number of test workers
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make plugin installation depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make integration tests depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grafana/build-container also for front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade dependencies in order to fix front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Depend on es-check
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Dont' depend on tests before building front-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix packaging
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Simplify
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Try to build images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install netcat
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Include golangci-lint with grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build storybook and docs website
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use build image with root user
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drop CircleCI dependencies
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e under Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Execute e2e server separately
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use own plugin for building Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use Starlark to configure Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Maintain Yarn cache
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build enterprise Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build Ubuntu Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add Postgres integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add MySQL integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Parameterize integration test DB connections
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Categorize integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grabpl integration-tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unintended change
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Disable Ubuntu Docker images for PR pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Regenerate yarn.lock
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grabpl
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Yarn cache before installing in grafana-enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use separate pipelines for OSS and enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Let OSS builds depend on tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Go cache before building back-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Reduce number of variants built for PRs
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix building of Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Simplify logic
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Use Starlark
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix syntax error
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Convert .drone.star to YAML
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade AWS Go SDK
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix Go linting
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Revert "Undo irrelevant changes"
This reverts commit 5152f65972
.
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* e2e: Support Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* More Drone support
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix build on Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove TODO comment
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
156 lines
7.3 KiB
Docker
156 lines
7.3 KiB
Docker
# Use old Debian (this has support into 2022) in order to ensure binary compatibility with older glibc's.
|
|
FROM debian:stretch-20200607 AS toolchain
|
|
|
|
ENV OSX_SDK_URL=https://s3.dockerproject.org/darwin/v2 \
|
|
OSX_SDK=MacOSX10.10.sdk \
|
|
OSX_MIN=10.10 \
|
|
CTNG=1.24.0 \
|
|
OSX_CROSS_REV=542acc2ef6c21aeb3f109c03748b1015a71fed63 \
|
|
GOLANGCILINT_VERSION=1.24.0 \
|
|
GOLANGCILINT_CHKSUM=241ca454102e909de04957ff8a5754c757cefa255758b3e1fba8a4533d19d179
|
|
|
|
WORKDIR /tmp
|
|
|
|
# FIRST PART
|
|
# build osx64 toolchain (stripped of man documentation)
|
|
# the toolchain produced is not self contained, it needs clang at runtime
|
|
#
|
|
# SECOND PART
|
|
# build gcc (no g++) centos6-x64 toolchain
|
|
# doc: https://crosstool-ng.github.io/docs/
|
|
# apt-get should be all dep to build toolchain
|
|
# sed and 1st echo are for convenience to get the toolchain in /tmp/x86_64-centos6-linux-gnu
|
|
# other echo are to enable build by root (crosstool-NG refuse to do that by default)
|
|
# the last 2 rm are just to save some time and space writing docker layers
|
|
#
|
|
# THIRD PART
|
|
# build fpm and creates a set of deb from gem
|
|
# ruby2.0 depends on ruby1.9.3 which is install as default ruby
|
|
# rm/ln are here to change that
|
|
# created deb depends on rubygem-json but json gem is not build
|
|
# so do by hand
|
|
|
|
|
|
# might wanna make sure osx cross and the other tarball as well as the packages ends up somewhere other than tmp
|
|
# might also wanna put them as their own layer to not have to unpack them every time?
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get upgrade -yq && \
|
|
apt-get install -yq \
|
|
clang patch libxml2-dev \
|
|
ca-certificates \
|
|
curl \
|
|
git \
|
|
make \
|
|
cmake \
|
|
libssl-dev \
|
|
xz-utils \
|
|
lzma-dev
|
|
RUN git clone https://github.com/tpoechtrager/osxcross.git /tmp/osxcross && \
|
|
cd /tmp/osxcross && git reset --hard $OSX_CROSS_REV
|
|
RUN curl -fL ${OSX_SDK_URL}/${OSX_SDK}.tar.xz -o /tmp/osxcross/tarballs/${OSX_SDK}.tar.xz
|
|
RUN ln -s /usr/bin/llvm-dsymutil-6.0 /usr/bin/dsymutil
|
|
RUN UNATTENDED=yes OSX_VERSION_MIN=${OSX_MIN} /tmp/osxcross/build.sh
|
|
RUN rm -rf /tmp/osxcross/target/SDK/${OSX_SDK}/usr/share && \
|
|
cd /tmp && \
|
|
tar cfJ osxcross.tar.xz osxcross/target && \
|
|
rm -rf /tmp/osxcross
|
|
RUN apt-get install -y \
|
|
unzip libtool-bin bison flex gawk gcc g++ gperf help2man libncurses5-dev make patch python-dev texinfo xz-utils
|
|
RUN curl -fL http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-${CTNG}.tar.xz | tar -xJ -C /tmp/
|
|
RUN cd /tmp/crosstool-ng-${CTNG} && \
|
|
./configure --enable-local && \
|
|
make && \
|
|
./ct-ng x86_64-centos6-linux-gnu && \
|
|
sed -i '/CT_PREFIX_DIR=/d' .config && \
|
|
echo 'CT_PREFIX_DIR="/tmp/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"' >> .config && \
|
|
echo 'CT_EXPERIMENTAL=y' >> .config && \
|
|
echo 'CT_ALLOW_BUILD_AS_ROOT=y' >> .config && \
|
|
echo 'CT_ALLOW_BUILD_AS_ROOT_SURE=y' >> .config && \
|
|
./ct-ng build
|
|
RUN cd /tmp && \
|
|
rm /tmp/x86_64-centos6-linux-gnu/build.log.bz2 && \
|
|
tar cfJ x86_64-centos6-linux-gnu.tar.xz x86_64-centos6-linux-gnu/ && \
|
|
rm -rf /tmp/x86_64-centos6-linux-gnu/ && \
|
|
rm -rf /tmp/crosstool-ng-${CTNG}
|
|
|
|
RUN curl -fLO https://github.com/golangci/golangci-lint/releases/download/v${GOLANGCILINT_VERSION}/golangci-lint-${GOLANGCILINT_VERSION}-linux-amd64.tar.gz
|
|
RUN echo ${GOLANGCILINT_CHKSUM} golangci-lint-${GOLANGCILINT_VERSION}-linux-amd64.tar.gz | sha256sum --check --strict --status
|
|
RUN tar xf golangci-lint-${GOLANGCILINT_VERSION}-linux-amd64.tar.gz
|
|
RUN mv golangci-lint-${GOLANGCILINT_VERSION}-linux-amd64/golangci-lint /tmp/
|
|
|
|
# Base image to crossbuild grafana.
|
|
# Use old Debian (this has support into 2022) in order to ensure binary compatibility with older glibc's.
|
|
FROM debian:stretch-20200607
|
|
|
|
ENV GOVERSION=1.14.4 \
|
|
PATH=/usr/local/go/bin:$PATH \
|
|
GOPATH=/go \
|
|
NODEVERSION=12.18.0-1nodesource1 \
|
|
YARNVERSION=1.22.4-1
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
COPY --from=toolchain /tmp/x86_64-centos6-linux-gnu.tar.xz /tmp/osxcross.tar.xz /tmp/
|
|
COPY --from=toolchain /tmp/golangci-lint /usr/local/bin
|
|
|
|
RUN apt-get update && \
|
|
apt-get upgrade -yq && \
|
|
apt-get install -yq \
|
|
build-essential clang gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-mingw-w64-x86-64 \
|
|
apt-transport-https \
|
|
python-pip \
|
|
ca-certificates \
|
|
curl \
|
|
libfontconfig1 \
|
|
gcc \
|
|
g++ \
|
|
git \
|
|
make \
|
|
rpm \
|
|
xz-utils \
|
|
expect \
|
|
gnupg2 \
|
|
procps \
|
|
ruby \
|
|
ruby-dev \
|
|
rubygems \
|
|
unzip && \
|
|
gem install -N fpm && \
|
|
ln -s /usr/bin/llvm-dsymutil-6.0 /usr/bin/dsymutil && \
|
|
curl -fsL https://deb.nodesource.com/setup_12.x | bash - && \
|
|
apt-get update && apt-get install -yq nodejs=${NODEVERSION} && \
|
|
curl -fsS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
|
|
apt-get update && apt-get install -yq yarn=${YARNVERSION} && \
|
|
curl -fL https://storage.googleapis.com/golang/go${GOVERSION}.linux-amd64.tar.gz \
|
|
| tar -xz -C /usr/local && \
|
|
git clone https://github.com/raspberrypi/tools.git /opt/rpi-tools --depth=1 && \
|
|
pip install codespell
|
|
|
|
# We build our own musl cross-compilers via the musl-cross-make project, on the same OS as this image's base image,
|
|
# to ensure compatibility. We also make sure to target musl 1.1.x, since musl 1.2.x introduces 64-bit time types
|
|
# that breaks compatibility on some 32-bit architectures (https://github.com/grafana/grafana/issues/23500).
|
|
ARG CHKSUM_ARMV7_MUSL=5db487fb0a4aa61667de45a9cfbf7940360bd7256583b8a1e7810b4d9dd0e02a8aac737ca634b57bf269195e776ef503832ed22a6689a1c8fcdcc956f846bef7
|
|
ARG CHKSUM_ARMV8_MUSL=50f4899cc2f637dbc39470bbe307074ccf7f40da2ab730218d13a9f75d578266311db6a0785919dcdcb5e7ce4517b13ee8d4a56d76e6fca7c6d4c2510d71aa8b
|
|
ARG CHKSUM_AMD64_MUSL=493a79e9e29a1eab3fdff6435bac6509253d2e54ac30ad9098ce5da638bbb8ad18a7ebf3520bcaf2f9588befeff23402d8bbf54fa3809bfe18c984a4ecabcb12
|
|
|
|
# Install musl cross compilers
|
|
RUN cd /tmp && \
|
|
curl -fLO https://grafana-downloads.storage.googleapis.com/compilers/arm-linux-musleabihf-cross.tgz && \
|
|
([ "$(sha512sum arm-linux-musleabihf-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_ARMV7_MUSL" ] || (echo "Mismatching checksums armv7"; exit 1)) && \
|
|
tar xf arm-linux-musleabihf-cross.tgz && \
|
|
rm arm-linux-musleabihf-cross.tgz && \
|
|
curl -fLO https://grafana-downloads.storage.googleapis.com/compilers/aarch64-linux-musl-cross.tgz && \
|
|
([ "$(sha512sum aarch64-linux-musl-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_ARMV8_MUSL" ] || (echo "Mismatching checksums armv8"; exit 1)) && \
|
|
tar xf aarch64-linux-musl-cross.tgz && \
|
|
rm aarch64-linux-musl-cross.tgz && \
|
|
curl -fLO https://grafana-downloads.storage.googleapis.com/compilers/x86_64-linux-musl-cross.tgz && \
|
|
([ "$(sha512sum x86_64-linux-musl-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_AMD64_MUSL" ] || (echo "Mismatching checksums amd64"; exit 1)) && \
|
|
tar xf x86_64-linux-musl-cross.tgz && \
|
|
rm x86_64-linux-musl-cross.tgz
|
|
|
|
COPY ./bootstrap.sh /tmp/bootstrap.sh
|