|
@@ -1,41 +1,62 @@
|
|
VERSION 0.6
|
|
VERSION 0.6
|
|
FROM ubuntu:20.04
|
|
FROM ubuntu:20.04
|
|
WORKDIR /tmp
|
|
WORKDIR /tmp
|
|
-
|
|
|
|
-ENV NEKOPATH=/tmp/neko
|
|
|
|
-
|
|
|
|
-neko:
|
|
|
|
- ARG TARGETPLATFORM
|
|
|
|
|
|
|
|
- IF [ "$TARGETPLATFORM" = "linux/amd64" ]
|
|
|
|
- ENV PLATFORM=linux64
|
|
|
|
- ELSE IF [ "$TARGETPLATFORM" = "linux/arm64" ]
|
|
|
|
- ENV PLATFORM=linux-arm64
|
|
|
|
- ELSE
|
|
|
|
- RUN echo "Unsupported platform $TARGETPLATFORM" && exit 1
|
|
|
|
- END
|
|
|
|
|
|
+INSTALL_PACKAGES:
|
|
|
|
+ COMMAND
|
|
|
|
+ ARG PACKAGES
|
|
|
|
+ RUN set -ex && \
|
|
|
|
+ apt-get update -qqy && \
|
|
|
|
+ apt-get install -qqy $PACKAGES && \
|
|
|
|
+ apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
- RUN apt-get update -qqy && \
|
|
|
|
- apt-get install -qqy curl && \
|
|
|
|
- apt-get autoremove -y && \
|
|
|
|
- apt-get clean -y
|
|
|
|
|
|
+INSTALL_NEKO:
|
|
|
|
+ COMMAND
|
|
|
|
+ ARG NEKOPATH
|
|
|
|
+ COPY +neko/* $NEKOPATH/
|
|
|
|
+ RUN bash -c 'set -ex && ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/ && ln -s $NEKOPATH/libneko.* /lib/'
|
|
|
|
|
|
- RUN set -ex && \
|
|
|
|
- curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o /tmp/neko_latest.tar.gz && \
|
|
|
|
- tar -xf /tmp/neko_latest.tar.gz -C /tmp && \
|
|
|
|
- mv `echo /tmp/neko-*-*` $NEKOPATH && \
|
|
|
|
- mkdir -p /usr/local/bin && \
|
|
|
|
- mkdir -p /usr/local/lib/neko && \
|
|
|
|
- ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/ && \
|
|
|
|
- ln -s $NEKOPATH/libneko.* /lib/ && \
|
|
|
|
- ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/ && \
|
|
|
|
- PATH=$NEKOPATH:$PATH && \
|
|
|
|
- neko -version
|
|
|
|
|
|
+INSTALL_HAXE:
|
|
|
|
+ COMMAND
|
|
|
|
+ ARG HAXE_STD_PATH
|
|
|
|
+ COPY +build/haxe +build/haxelib /usr/local/bin/
|
|
|
|
+ COPY +build/std $HAXE_STD_PATH/
|
|
|
|
+ RUN ls -lah $HAXE_STD_PATH/
|
|
|
|
+
|
|
|
|
+try-neko:
|
|
|
|
+ ENV NEKOPATH=/tmp/neko
|
|
|
|
+ DO +INSTALL_NEKO --NEKOPATH=$NEKOPATH
|
|
|
|
+ RUN neko -version
|
|
|
|
+ RUN nekotools server
|
|
|
|
+
|
|
|
|
+try-haxe:
|
|
|
|
+ ENV NEKOPATH=/tmp/neko
|
|
|
|
+ ENV HAXE_STD_PATH=/tmp/haxe/std
|
|
|
|
+ DO +INSTALL_NEKO --NEKOPATH=$NEKOPATH
|
|
|
|
+ DO +INSTALL_HAXE --HAXE_STD_PATH=$HAXE_STD_PATH
|
|
|
|
+ RUN ls -lah $HAXE_STD_PATH/
|
|
|
|
+ RUN haxe -version
|
|
|
|
+ RUN haxelib
|
|
|
|
+
|
|
|
|
+neko:
|
|
|
|
+ DO +INSTALL_PACKAGES --PACKAGES="curl"
|
|
|
|
|
|
|
|
+ ARG TARGETARCH
|
|
|
|
+ RUN set -ex && \
|
|
|
|
+ case "$TARGETARCH" in \
|
|
|
|
+ amd64) PLATFORM=linux64;; \
|
|
|
|
+ arm64) PLATFORM=linux-arm64;; \
|
|
|
|
+ *) exit 1;; \
|
|
|
|
+ esac && \
|
|
|
|
+ curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o neko_latest.tar.gz && \
|
|
|
|
+ tar -xf neko_latest.tar.gz && \
|
|
|
|
+ mv `echo neko-*-*` /tmp/neko-unpacked
|
|
|
|
+
|
|
|
|
+ SAVE ARTIFACT /tmp/neko-unpacked/*
|
|
SAVE IMAGE --cache-hint
|
|
SAVE IMAGE --cache-hint
|
|
|
|
|
|
build-environment:
|
|
build-environment:
|
|
- FROM +neko
|
|
|
|
|
|
+ DO +INSTALL_NEKO
|
|
|
|
|
|
RUN set -ex && \
|
|
RUN set -ex && \
|
|
apt-get update -qqy && \
|
|
apt-get update -qqy && \
|
|
@@ -60,7 +81,6 @@ build:
|
|
|
|
|
|
# Install OCaml libraries
|
|
# Install OCaml libraries
|
|
RUN set -ex && \
|
|
RUN set -ex && \
|
|
- export PATH=$NEKOPATH:$PATH && \
|
|
|
|
opam init --disable-sandboxing && \
|
|
opam init --disable-sandboxing && \
|
|
opam update && \
|
|
opam update && \
|
|
opam pin add haxe . --no-action && \
|
|
opam pin add haxe . --no-action && \
|
|
@@ -70,7 +90,6 @@ build:
|
|
|
|
|
|
# Build Haxe
|
|
# Build Haxe
|
|
RUN set -ex && \
|
|
RUN set -ex && \
|
|
- export PATH=$NEKOPATH:$PATH && \
|
|
|
|
eval $(opam env) && \
|
|
eval $(opam env) && \
|
|
opam config exec -- make -s -j`nproc` STATICLINK=1 haxe && \
|
|
opam config exec -- make -s -j`nproc` STATICLINK=1 haxe && \
|
|
opam config exec -- make -s haxelib && \
|
|
opam config exec -- make -s haxelib && \
|
|
@@ -79,6 +98,7 @@ build:
|
|
ldd -v ./haxe && \
|
|
ldd -v ./haxe && \
|
|
ldd -v ./haxelib
|
|
ldd -v ./haxelib
|
|
|
|
|
|
|
|
+ SAVE ARTIFACT std
|
|
SAVE ARTIFACT ./out/* AS LOCAL out/$TARGETPLATFORM/
|
|
SAVE ARTIFACT ./out/* AS LOCAL out/$TARGETPLATFORM/
|
|
SAVE ARTIFACT ./haxe* AS LOCAL out/$TARGETPLATFORM/
|
|
SAVE ARTIFACT ./haxe* AS LOCAL out/$TARGETPLATFORM/
|
|
SAVE IMAGE --cache-hint
|
|
SAVE IMAGE --cache-hint
|
|
@@ -88,28 +108,34 @@ build-multiarch:
|
|
BUILD --platform=linux/amd64 --platform=linux/arm64 +build --ADD_REVISION=$ADD_REVISION
|
|
BUILD --platform=linux/amd64 --platform=linux/arm64 +build --ADD_REVISION=$ADD_REVISION
|
|
|
|
|
|
xmldoc:
|
|
xmldoc:
|
|
- FROM +build
|
|
|
|
|
|
+ DO +INSTALL_PACKAGES --PACKAGES="git"
|
|
|
|
+
|
|
|
|
+ ENV NEKOPATH=/tmp/neko
|
|
|
|
+ ENV HAXE_STD_PATH=/tmp/haxe/std
|
|
|
|
+ DO +INSTALL_NEKO --NEKOPATH=$NEKOPATH
|
|
|
|
+ DO +INSTALL_HAXE --HAXE_STD_PATH=$HAXE_STD_PATH
|
|
|
|
+
|
|
|
|
+ COPY --dir extra .
|
|
|
|
|
|
ARG COMMIT
|
|
ARG COMMIT
|
|
ARG BRANCH
|
|
ARG BRANCH
|
|
|
|
|
|
- COPY . .
|
|
|
|
-
|
|
|
|
- RUN set -ex && \
|
|
|
|
- export PATH=$NEKOPATH:$PWD:$PATH && \
|
|
|
|
- cd extra && \
|
|
|
|
- ../haxelib newrepo && \
|
|
|
|
- ../haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp && \
|
|
|
|
- ../haxelib git hxjava https://github.com/HaxeFoundation/hxjava && \
|
|
|
|
- ../haxelib git hxcs https://github.com/HaxeFoundation/hxcs && \
|
|
|
|
- ../haxe doc.hxml
|
|
|
|
-
|
|
|
|
- RUN echo "{\"commit\":\"$COMMIT\",\"branch\":\"$BRANCH\"}" > extra/doc/info.json
|
|
|
|
|
|
+ RUN set -ex && \
|
|
|
|
+ cd extra && \
|
|
|
|
+ haxelib newrepo && \
|
|
|
|
+ haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp && \
|
|
|
|
+ haxelib git hxjava https://github.com/HaxeFoundation/hxjava && \
|
|
|
|
+ haxelib git hxcs https://github.com/HaxeFoundation/hxcs && \
|
|
|
|
+ haxe doc.hxml && \
|
|
|
|
+ echo "{\"commit\":\"$COMMIT\",\"branch\":\"$BRANCH\"}" > doc/info.json
|
|
|
|
|
|
SAVE ARTIFACT ./extra/doc/* AS LOCAL extra/doc/
|
|
SAVE ARTIFACT ./extra/doc/* AS LOCAL extra/doc/
|
|
|
|
|
|
test-environment:
|
|
test-environment:
|
|
- FROM +neko
|
|
|
|
|
|
+ ENV NEKOPATH=/tmp/neko
|
|
|
|
+ ENV HAXE_STD_PATH=/tmp/haxe/std
|
|
|
|
+ DO +INSTALL_NEKO --NEKOPATH=$NEKOPATH
|
|
|
|
+ DO +INSTALL_HAXE --HAXE_STD_PATH=$HAXE_STD_PATH
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV COMMON_PACKAGES=wget git build-essential locales sqlite3
|
|
ENV COMMON_PACKAGES=wget git build-essential locales sqlite3
|
|
@@ -128,14 +154,6 @@ test-environment:
|
|
|
|
|
|
SAVE IMAGE --cache-hint
|
|
SAVE IMAGE --cache-hint
|
|
|
|
|
|
-INSTALL_PACKAGES:
|
|
|
|
- COMMAND
|
|
|
|
- ARG PACKAGES
|
|
|
|
- RUN set -ex && \
|
|
|
|
- apt-get update -qqy && \
|
|
|
|
- apt-get install -qqy $PACKAGES && \
|
|
|
|
- apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
|
|
|
-
|
|
|
|
test-environment-java:
|
|
test-environment-java:
|
|
FROM +test-environment
|
|
FROM +test-environment
|
|
DO +INSTALL_PACKAGES --PACKAGES="default-jdk"
|
|
DO +INSTALL_PACKAGES --PACKAGES="default-jdk"
|
|
@@ -215,11 +233,10 @@ test:
|
|
ENV HAXE_STD_PATH=/haxe/std
|
|
ENV HAXE_STD_PATH=/haxe/std
|
|
WORKDIR /haxe
|
|
WORKDIR /haxe
|
|
|
|
|
|
- COPY +build/* .
|
|
|
|
|
|
+ COPY +build/haxe +build/haxelib /usr/local/bin/
|
|
COPY --dir tests std .
|
|
COPY --dir tests std .
|
|
|
|
|
|
- RUN PATH=$PATH:$PWD:$NEKOPATH \
|
|
|
|
- && mkdir /haxelib \
|
|
|
|
|
|
+ RUN mkdir /haxelib \
|
|
&& haxelib setup /haxelib \
|
|
&& haxelib setup /haxelib \
|
|
&& cd tests \
|
|
&& cd tests \
|
|
&& haxe RunCi.hxml
|
|
&& haxe RunCi.hxml
|
|
@@ -237,6 +254,6 @@ test-all:
|
|
BUILD +test --TEST=cpp
|
|
BUILD +test --TEST=cpp
|
|
BUILD +test --TEST=lua
|
|
BUILD +test --TEST=lua
|
|
|
|
|
|
- IF [ "$TARGETPLATFORM" = "linux/amd64" ] # FIXME
|
|
|
|
|
|
+ IF [ "$TARGETPLATFORM" = "linux/amd64" ] # FIXME: hl can't compile on arm64 (JIT issue?)
|
|
BUILD +test --TEST=hl
|
|
BUILD +test --TEST=hl
|
|
END
|
|
END
|