From 49aaf1cc5d64a5a92b7fc1f111e65f791184a2f0 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Sat, 3 Feb 2018 14:45:01 -0500 Subject: [PATCH] add testing --- .circleci/config.yml | 394 +++++++++++++++++- .../toolchain-test-ubuntu:trusty/Dockerfile | 22 + .../toolchain-test-ubuntu:trusty/main.cpp | 8 + support/docker/{ => toolchains}/Dockerfile | 0 .../toolchian-test-ubuntu:xenial/Dockerfile | 22 + .../toolchian-test-ubuntu:xenial/main.cpp | 8 + 6 files changed, 439 insertions(+), 15 deletions(-) create mode 100644 support/docker/toolchain-test-ubuntu:trusty/Dockerfile create mode 100644 support/docker/toolchain-test-ubuntu:trusty/main.cpp rename support/docker/{ => toolchains}/Dockerfile (100%) create mode 100644 support/docker/toolchian-test-ubuntu:xenial/Dockerfile create mode 100644 support/docker/toolchian-test-ubuntu:xenial/main.cpp diff --git a/.circleci/config.yml b/.circleci/config.yml index 9927148..f2ac80a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,12 +15,6 @@ install_nerves_bootstrap: &install_nerves_bootstrap name: Install nerves_bootstrap command: mix archive.install hex nerves_bootstrap --force -build_workflow: &build_workflow - context: org-global - filters: - tags: - only: /.*/ - build: &build resource_class: large steps: @@ -69,6 +63,36 @@ build: &build paths: - /home/nerves/deploy/toolchain +test: &test + steps: + - run: + name: Setup Cache Vars + command: | + echo "$TOOLCHAIN" > .toolchain + echo "$BUILD_OS" > .build_os + - restore_cache: + key: nerves/deploy/{{ checksum ".toolchain" }}/{{ checksum ".build_os" }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }} + - run: + name: Decompress Toolchain Archive + command: | + mkdir -p /root/toolchain + tar xvf /home/nerves/deploy/toolchain/*.tar.xz --strip-components=1 -C /root/toolchain + - run: + name: Compile + command: /root/toolchain/bin/*-g++ main.cpp + +build_workflow: &build_workflow + context: org-global + filters: + tags: + only: /.*/ + +test_workflow: &test_workflow + context: org-global + filters: + tags: + only: /.*/ + deploy_workflow: &deploy_workflow context: org-global filters: @@ -88,6 +112,8 @@ linux: &linux version: 2.0 jobs: + #------------------------------- + # Build #------------------------------- # aarch64_unknown_linux_gnueabi #------------------------------- @@ -242,6 +268,236 @@ jobs: <<: *canadian_rpi <<: *build + #------------------------------- + # Test Trusty + #------------------------------- + # aarch64_unknown_linux_gnueabi + #------------------------------- + # test + # linux + test_linux_trusty_aarch64_unknown_linux_gnueabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_aarch64_unknown_linux_gnueabi + <<: *linux + <<: *test + + + #------------------------------- + # arm_unknown_linux_gnueabihf + #------------------------------- + # test + # linux + test_linux_trusty_arm_unknown_linux_gnueabihf: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_arm_unknown_linux_gnueabihf + <<: *linux + <<: *test + + #------------------------------- + # armv5tejl_unknown_linux_musleabi + #------------------------------- + # test + # linux + test_linux_trusty_armv5tejl_unknown_linux_musleabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_armv5tejl_unknown_linux_musleabi + <<: *linux + <<: *test + + #------------------------------- + # armv6_rpi_linux_gnueabi + #------------------------------- + # test + # linux + test_linux_trusty_armv6_rpi_linux_gnueabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_armv6_rpi_linux_gnueabi + <<: *linux + <<: *test + + #------------------------------- + # i586_unknown_linux_gnu + #------------------------------- + # test + # linux + test_linux_trusty_i586_unknown_linux_gnu: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_i586_unknown_linux_gnu + <<: *linux + <<: *test + + #------------------------------- + # mipsel_unknown_linux_musl + #------------------------------- + # test + # linux + test_linux_trusty_mipsel_unknown_linux_musl: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_mipsel_unknown_linux_musl + <<: *linux + <<: *test + + #------------------------------- + # x86_64_unknown_linux_gnu + #------------------------------- + # test + # linux + test_linux_trusty_x86_64_unknown_linux_gnu: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_x86_64_unknown_linux_gnu + <<: *linux + <<: *test + + #------------------------------- + # x86_64_unknown_linux_musl + #------------------------------- + # test + # linux + test_linux_trusty_x86_64_unknown_linux_musl: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:trusty + environment: + TOOLCHAIN: nerves_toolchain_x86_64_unknown_linux_musl + <<: *linux + <<: *test + + #------------------------------- + # Test Xenial + #------------------------------- + # aarch64_unknown_linux_gnueabi + #------------------------------- + # test + # linux + test_linux_xenial_aarch64_unknown_linux_gnueabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_aarch64_unknown_linux_gnueabi + <<: *linux + <<: *test + + + #------------------------------- + # arm_unknown_linux_gnueabihf + #------------------------------- + # test + # linux + test_linux_xenial_arm_unknown_linux_gnueabihf: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_arm_unknown_linux_gnueabihf + <<: *linux + <<: *test + + #------------------------------- + # armv5tejl_unknown_linux_musleabi + #------------------------------- + # test + # linux + test_linux_xenial_armv5tejl_unknown_linux_musleabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_armv5tejl_unknown_linux_musleabi + <<: *linux + <<: *test + + #------------------------------- + # armv6_rpi_linux_gnueabi + #------------------------------- + # test + # linux + test_linux_xenial_armv6_rpi_linux_gnueabi: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_armv6_rpi_linux_gnueabi + <<: *linux + <<: *test + + #------------------------------- + # i586_unknown_linux_gnu + #------------------------------- + # test + # linux + test_linux_xenial_i586_unknown_linux_gnu: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_i586_unknown_linux_gnu + <<: *linux + <<: *test + + #------------------------------- + # mipsel_unknown_linux_musl + #------------------------------- + # test + # linux + test_linux_xenial_mipsel_unknown_linux_musl: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_mipsel_unknown_linux_musl + <<: *linux + <<: *test + + #------------------------------- + # x86_64_unknown_linux_gnu + #------------------------------- + # test + # linux + test_linux_xenial_x86_64_unknown_linux_gnu: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_x86_64_unknown_linux_gnu + <<: *linux + <<: *test + + #------------------------------- + # x86_64_unknown_linux_musl + #------------------------------- + # test + # linux + test_linux_xenial_x86_64_unknown_linux_musl: + working_directory: /root + docker: + - image: nervesproject/toolchain-test-ubuntu:xenial + environment: + TOOLCHAIN: nerves_toolchain_x86_64_unknown_linux_musl + <<: *linux + <<: *test + deploy: <<: *defaults steps: @@ -370,8 +626,10 @@ jobs: workflows: version: 2 - build_deploy: + build_test_deploy: jobs: + #------------------------------- + # Build Toolchains #------------------------------- # aarch64_unknown_linux_gnueabi #------------------------------- @@ -436,25 +694,131 @@ workflows: - build_rpi_nerves_toolchain_x86_64_unknown_linux_musl: <<: *build_workflow + #------------------------------- + # Test Toolchains + #------------------------------- + # aarch64_unknown_linux_gnueabi + #------------------------------- + - test_linux_trusty_aarch64_unknown_linux_gnueabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_aarch64_unknown_linux_gnueabi + - test_linux_xenial_aarch64_unknown_linux_gnueabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_aarch64_unknown_linux_gnueabi + + #------------------------------- + # arm_unknown_linux_gnueabihf + #------------------------------- + - test_linux_trusty_arm_unknown_linux_gnueabihf: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_arm_unknown_linux_gnueabihf + - test_linux_xenial_arm_unknown_linux_gnueabihf: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_arm_unknown_linux_gnueabihf + + #------------------------------- + # armv5tejl_unknown_linux_musleabi + #------------------------------- + - test_linux_trusty_armv5tejl_unknown_linux_musleabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_armv5tejl_unknown_linux_musleabi + - test_linux_xenial_armv5tejl_unknown_linux_musleabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_armv5tejl_unknown_linux_musleabi + + #------------------------------- + # armv6_rpi_linux_gnueabi + #------------------------------- + - test_linux_trusty_armv6_rpi_linux_gnueabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_armv6_rpi_linux_gnueabi + - test_linux_xenial_armv6_rpi_linux_gnueabi: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_armv6_rpi_linux_gnueabi + + #------------------------------- + # i586_unknown_linux_gnu + #------------------------------- + - test_linux_trusty_i586_unknown_linux_gnu: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_i586_unknown_linux_gnu + - test_linux_xenial_i586_unknown_linux_gnu: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_i586_unknown_linux_gnu + + #------------------------------- + # mipsel_unknown_linux_musl + #------------------------------- + - test_linux_trusty_mipsel_unknown_linux_musl: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_mipsel_unknown_linux_musl + - test_linux_xenial_mipsel_unknown_linux_musl: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_mipsel_unknown_linux_musl + + #------------------------------- + # x86_64_unknown_linux_gnu + #------------------------------- + - test_linux_trusty_x86_64_unknown_linux_gnu: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_x86_64_unknown_linux_gnu + - test_linux_xenial_x86_64_unknown_linux_gnu: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_x86_64_unknown_linux_gnu + + #------------------------------- + # x86_64_unknown_linux_musl + #------------------------------- + - test_linux_trusty_x86_64_unknown_linux_musl: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_x86_64_unknown_linux_musl + - test_linux_xenial_x86_64_unknown_linux_musl: + <<: *test_workflow + requires: + - build_linux_nerves_toolchain_x86_64_unknown_linux_musl + #------------------------------- # Deploy Toolchains #------------------------------- - deploy: <<: *deploy_workflow requires: - - build_linux_nerves_toolchain_aarch64_unknown_linux_gnueabi + - test_linux_trusty_aarch64_unknown_linux_gnueabi + - test_linux_xenial_aarch64_unknown_linux_gnueabi - build_rpi_nerves_toolchain_aarch64_unknown_linux_gnueabi - - build_linux_nerves_toolchain_arm_unknown_linux_gnueabihf + - test_linux_trusty_arm_unknown_linux_gnueabihf + - test_linux_xenial_arm_unknown_linux_gnueabihf - build_rpi_nerves_toolchain_arm_unknown_linux_gnueabihf - - build_linux_nerves_toolchain_armv5tejl_unknown_linux_musleabi + - test_linux_trusty_armv5tejl_unknown_linux_musleabi + - test_linux_xenial_armv5tejl_unknown_linux_musleabi - build_rpi_nerves_toolchain_armv5tejl_unknown_linux_musleabi - - build_linux_nerves_toolchain_armv6_rpi_linux_gnueabi + - test_linux_trusty_armv6_rpi_linux_gnueabi + - test_linux_xenial_armv6_rpi_linux_gnueabi - build_rpi_nerves_toolchain_armv6_rpi_linux_gnueabi - - build_linux_nerves_toolchain_i586_unknown_linux_gnu + - test_linux_trusty_i586_unknown_linux_gnu + - test_linux_xenial_i586_unknown_linux_gnu - build_rpi_nerves_toolchain_i586_unknown_linux_gnu - - build_linux_nerves_toolchain_mipsel_unknown_linux_musl + - test_linux_trusty_mipsel_unknown_linux_musl + - test_linux_xenial_mipsel_unknown_linux_musl - build_rpi_nerves_toolchain_mipsel_unknown_linux_musl - - build_linux_nerves_toolchain_x86_64_unknown_linux_gnu + - test_linux_trusty_x86_64_unknown_linux_gnu + - test_linux_xenial_x86_64_unknown_linux_gnu - build_rpi_nerves_toolchain_x86_64_unknown_linux_gnu - - build_linux_nerves_toolchain_x86_64_unknown_linux_musl + - test_linux_trusty_x86_64_unknown_linux_musl + - test_linux_xenial_x86_64_unknown_linux_musl - build_rpi_nerves_toolchain_x86_64_unknown_linux_musl diff --git a/support/docker/toolchain-test-ubuntu:trusty/Dockerfile b/support/docker/toolchain-test-ubuntu:trusty/Dockerfile new file mode 100644 index 0000000..ca781dc --- /dev/null +++ b/support/docker/toolchain-test-ubuntu:trusty/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:trusty +MAINTAINER Nerves Project +LABEL maintainer="Nerves Project developers " \ + vendor="NervesProject" \ +description="Test toolchains under ubuntu trusty" + +# Setup environment +ENV DEBIAN_FRONTEND noninteractive +ENV LANG=C.UTF-8 +ENV TERM=xterm + +RUN set -xe \ + && apt-get update \ + && apt-get -y install \ + xz-utils \ + ca-certificates\ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /root/toolchain + +COPY main.cpp /root +WORKDIR /root + diff --git a/support/docker/toolchain-test-ubuntu:trusty/main.cpp b/support/docker/toolchain-test-ubuntu:trusty/main.cpp new file mode 100644 index 0000000..5999781 --- /dev/null +++ b/support/docker/toolchain-test-ubuntu:trusty/main.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; + +int main() +{ + cout << "Hello, World!"; + return 0; +} diff --git a/support/docker/Dockerfile b/support/docker/toolchains/Dockerfile similarity index 100% rename from support/docker/Dockerfile rename to support/docker/toolchains/Dockerfile diff --git a/support/docker/toolchian-test-ubuntu:xenial/Dockerfile b/support/docker/toolchian-test-ubuntu:xenial/Dockerfile new file mode 100644 index 0000000..9c59e8c --- /dev/null +++ b/support/docker/toolchian-test-ubuntu:xenial/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:xenial +MAINTAINER Nerves Project +LABEL maintainer="Nerves Project developers " \ + vendor="NervesProject" \ +description="Test toolchains under ubuntu xenial" + +# Setup environment +ENV DEBIAN_FRONTEND noninteractive +ENV LANG=C.UTF-8 +ENV TERM=xterm + +RUN set -xe \ + && apt-get update \ + && apt-get -y install \ + xz-utils \ + ca-certificates\ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /root/toolchain + +COPY main.cpp /root +WORKDIR /root + diff --git a/support/docker/toolchian-test-ubuntu:xenial/main.cpp b/support/docker/toolchian-test-ubuntu:xenial/main.cpp new file mode 100644 index 0000000..5999781 --- /dev/null +++ b/support/docker/toolchian-test-ubuntu:xenial/main.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; + +int main() +{ + cout << "Hello, World!"; + return 0; +}