mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 02/14] test/Containerfile: reduce duplication in cross toolchain handling
Date: Mon,  5 Jun 2023 08:36:11 +0200	[thread overview]
Message-ID: <20230605063623.1254764-2-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20230605063623.1254764-1-a.fatoum@pengutronix.de>

ENV directive in OCI will result in the container having the environment
variable defined. Let's use that instead of duplicating it across
workflows.

Also the many wget's to get the kernel toolchains are not that readable,
so define a function and call it to make it easier to see what is what.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 .github/workflows/test-defconfigs.yml     |  6 ------
 .github/workflows/test-labgrid-pytest.yml |  6 ------
 test/Containerfile                        | 25 +++++++++++++++--------
 3 files changed, 17 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/test-defconfigs.yml b/.github/workflows/test-defconfigs.yml
index 108e54d289a0..71e440793ce5 100644
--- a/.github/workflows/test-defconfigs.yml
+++ b/.github/workflows/test-defconfigs.yml
@@ -32,12 +32,6 @@ jobs:
       run: |
         export ARCH=${{matrix.arch}}
 
-        export CROSS_COMPILE_arm=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-
-        export CROSS_COMPILE_arm64=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-
-        export CROSS_COMPILE_mips=/opt/gcc-12.2.0-nolibc/mips-linux/bin/mips-linux-
-        export CROSS_COMPILE_powerpc=/opt/gcc-12.2.0-nolibc/powerpc-linux/bin/powerpc-linux-
-        export CROSS_COMPILE_riscv=/opt/gcc-12.2.0-nolibc/riscv32-linux/bin/riscv32-linux-
-
         ./test/generate-dummy-fw.sh
 
         ./MAKEALL -O build-${{matrix.arch}} -k test/kconfig/disable_size_check.kconf \
diff --git a/.github/workflows/test-labgrid-pytest.yml b/.github/workflows/test-labgrid-pytest.yml
index 2c741500663e..399de6dc077a 100644
--- a/.github/workflows/test-labgrid-pytest.yml
+++ b/.github/workflows/test-labgrid-pytest.yml
@@ -42,12 +42,6 @@ jobs:
       run: |
         export ARCH=${{matrix.arch}}
 
-        export CROSS_COMPILE_arm=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-
-        export CROSS_COMPILE_arm64=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-
-        export CROSS_COMPILE_mips=/opt/gcc-12.2.0-nolibc/mips-linux/bin/mips-linux-
-        export CROSS_COMPILE_powerpc=/opt/gcc-12.2.0-nolibc/powerpc-linux/bin/powerpc-linux-
-        export CROSS_COMPILE_riscv=/opt/gcc-12.2.0-nolibc/riscv32-linux/bin/riscv32-linux-
-
         ./test/generate-dummy-fw.sh
 
         ./MAKEALL -O build-${{matrix.arch}} -k test/kconfig/enable_self_test.kconf \
diff --git a/test/Containerfile b/test/Containerfile
index 8c9502c0a190..ff08cc1a7841 100644
--- a/test/Containerfile
+++ b/test/Containerfile
@@ -64,14 +64,17 @@ RUN apt-get update && apt-get install -y \
 	libyaml-libyaml-perl \
 	&& rm -rf /var/lib/apt/lists/*
 
-# Manually install the kernel.org Crosstool based toolchains for gcc-12.2.0
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-aarch64-linux.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-arm-linux-gnueabi.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-i386-linux.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-mips-linux.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-powerpc-linux.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-riscv64-linux.tar.xz | tar -C /opt -xJ
-RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-riscv32-linux.tar.xz | tar -C /opt -xJ
+ENV GCC_VERSION=12.2.0
+
+# Manually install the kernel.org Crosstool based toolchains
+RUN korg_crosstool_dl() { wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/${1}/${2}/${1}-gcc-${2}-nolibc-${3}.tar.xz | tar -C /opt -xJ ; } && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} arm-linux-gnueabi && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} aarch64-linux     && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} i386-linux        && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} mips-linux        && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} powerpc-linux     && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} riscv32-linux     && \
+    korg_crosstool_dl x86_64 ${GCC_VERSION} riscv64-linux
 
 RUN wget "https://github.com/qemu/qemu/blob/v5.2.0/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin?raw=true" -O /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin
 
@@ -86,4 +89,10 @@ RUN cd /tmp && \
     pip3 install . && \
     ln -s $(which pytest) /usr/local/bin/labgrid-pytest;
 
+ENV CROSS_COMPILE_arm=/opt/gcc-${GCC_VERSION}-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-
+ENV CROSS_COMPILE_arm64=/opt/gcc-${GCC_VERSION}-nolibc/aarch64-linux/bin/aarch64-linux-
+ENV CROSS_COMPILE_mips=/opt/gcc-${GCC_VERSION}-nolibc/mips-linux/bin/mips-linux-
+ENV CROSS_COMPILE_powerpc=/opt/gcc-${GCC_VERSION}-nolibc/powerpc-linux/bin/powerpc-linux-
+ENV CROSS_COMPILE_riscv=/opt/gcc-${GCC_VERSION}-nolibc/riscv32-linux/bin/riscv32-linux-
+
 USER barebox:barebox
-- 
2.39.2




  reply	other threads:[~2023-06-05  6:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-05  6:36 [PATCH 01/14] gitignore: don't ignore files in .github/ directory Ahmad Fatoum
2023-06-05  6:36 ` Ahmad Fatoum [this message]
2023-06-05  6:36 ` [PATCH 03/14] test/Containerfile: install only one RISC-V toolchain Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 04/14] test/Containerfile: drop i386 toolchain Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 05/14] test/Containerfile: update to GCC 13.1.0 Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 06/14] test/Containerfile: drop unneeded dependencies Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 07/14] ci: test-defconfigs.yml: rename to build-defconfigs.yml Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 08/14] ci: shorten name in YAML files Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 09/14] ci: don't fail fast Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 10/14] ci: don't use deprecated Node.js 12 actions Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 11/14] ci: pytest: upload artifacts Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 12/14] ci: build: dynamically generate build matrix Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 13/14] test: labgrid-env: rv64i: use QEmu built-in openSBI Ahmad Fatoum
2023-06-05  6:36 ` [PATCH 14/14] ci: pytest: test RISCV 64-bit as well Ahmad Fatoum
2023-06-06  9:39 ` [PATCH 01/14] gitignore: don't ignore files in .github/ directory Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230605063623.1254764-2-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox