[Git][ghc/ghc][wip/T18234] 2 commits: gitlab-ci: Make names more consistent
Ben Gamari
gitlab at gitlab.haskell.org
Wed May 27 22:12:34 UTC 2020
Ben Gamari pushed to branch wip/T18234 at Glasgow Haskell Compiler / GHC
Commits:
c5ce6d56 by Ben Gamari at 2020-05-27T18:12:22-04:00
gitlab-ci: Make names more consistent
- - - - -
17d0b228 by Ben Gamari at 2020-05-27T18:12:25-04:00
gitlab-ci: Introduce a nightly cross-compilation job
This adds a job to test cross-compilation from x86-64 to AArch64 with
Hadrian.
Fixes #18234.
- - - - -
2 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -2,7 +2,7 @@ variables:
GIT_SSL_NO_VERIFY: "1"
# Commit of ghc/ci-images repository from which to pull Docker images
- DOCKER_REV: 6223fe0b5942f4fa35bdec92c74566cf195bfb42
+ DOCKER_REV: ba119705df5222fe74208a85019cb980e2c4318f
# Sequential version number capturing the versions of all tools fetched by
# .gitlab/ci.sh.
@@ -178,7 +178,7 @@ lint-release-changelogs:
# Validation via Pipelines (hadrian)
############################################################
-.validate-hadrian:
+.build-hadrian:
variables:
FLAVOUR: "validate"
script:
@@ -198,11 +198,8 @@ lint-release-changelogs:
- ghc.tar.xz
- junit.xml
-.validate-linux-hadrian:
- extends: .validate-hadrian
- image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
- variables:
- TEST_ENV: "x86_64-linux-deb9-hadrian"
+.build-linux-hadrian:
+ extends: .build-hadrian
before_script:
# workaround for docker permissions
- sudo chown ghc:ghc -R .
@@ -212,20 +209,53 @@ lint-release-changelogs:
- "git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/perf || true"
after_script:
- .gitlab/ci.sh clean
+
+.build-x86_64-linux-deb9-hadrian:
+ extends: .build-linux-hadrian
+ image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
tags:
- x86_64-linux
validate-x86_64-linux-deb9-hadrian:
- extends: .validate-linux-hadrian
+ extends: .build-x86_64-linux-deb9-hadrian
stage: build
+ variables:
+ TEST_ENV: "x86_64-linux-deb9-hadrian"
validate-x86_64-linux-deb9-unreg-hadrian:
- extends: .validate-linux-hadrian
+ extends: .build-x86_64-linux-deb9-hadrian
stage: full-build
variables:
CONFIGURE_ARGS: --enable-unregisterised
TEST_ENV: "x86_64-linux-deb9-unreg-hadrian"
+.build-x86_64-linux-deb10-hadrian:
+ extends: .build-hadrian
+ image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+ before_script:
+ # workaround for docker permissions
+ - sudo chown ghc:ghc -R .
+ - git submodule sync --recursive
+ - git submodule update --init --recursive
+ - git checkout .gitmodules
+ - "git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/perf || true"
+ after_script:
+ - .gitlab/ci.sh clean
+ tags:
+ - x86_64-linux
+
+nightly-x86_64-linux-deb10-hadrian-cross-aarch64:
+ #<<: *nightly
+ stage: build
+ extends: .build-x86_64-linux-deb10-hadrian
+ variables:
+ CROSS_TARGET: "aarch64-linux-gnu"
+
+
+############################################################
+# GHC-in-GHCi (Hadrian)
+############################################################
+
hadrian-ghc-in-ghci:
stage: quick-build
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
@@ -327,7 +357,7 @@ release-x86_64-freebsd:
stage: full-build
.build-x86_64-freebsd-hadrian:
- extends: .validate-hadrian
+ extends: .build-hadrian
stage: full-build
tags:
- x86_64-freebsd
@@ -678,7 +708,7 @@ release-x86_64-linux-deb8:
#################################
.build-x86_64-linux-alpine-hadrian:
- extends: .validate-linux-hadrian
+ extends: .build-linux-hadrian
stage: full-build
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine:$DOCKER_REV"
# There are currently a few failing tests
=====================================
.gitlab/ci.sh
=====================================
@@ -80,6 +80,7 @@ Modes:
Environment variables:
+ CROSS_TARGET Triple of cross-compilation target.
MSYSTEM (Windows-only) Which platform to build form (MINGW64 or MINGW32).
Environment variables determining build configuration of Make system:
@@ -114,11 +115,11 @@ EOF
function mingw_init() {
case "$MSYSTEM" in
MINGW32)
- triple="i386-unknown-mingw32"
+ target_triple="i386-unknown-mingw32"
boot_triple="i386-unknown-mingw32" # triple of bootstrap GHC
;;
MINGW64)
- triple="x86_64-unknown-mingw32"
+ target_triple="x86_64-unknown-mingw32"
boot_triple="x86_64-unknown-mingw32" # triple of bootstrap GHC
;;
*)
@@ -375,8 +376,8 @@ function configure() {
end_section "booting"
local target_args=""
- if [[ -n "$triple" ]]; then
- target_args="--target=$triple"
+ if [[ -n "$target_triple" ]]; then
+ target_args="--target=$target_triple"
fi
start_section "configuring"
@@ -415,6 +416,11 @@ function push_perf_notes() {
}
function test_make() {
+ if [ -n "$CROSS_TARGET" ]; then
+ info "Can't test cross-compiled build."
+ return
+ fi
+
run "$MAKE" test_bindist TEST_PREP=YES
run "$MAKE" V=0 test \
THREADS="$cores" \
@@ -432,6 +438,11 @@ function build_hadrian() {
}
function test_hadrian() {
+ if [ -n "$CROSS_TARGET" ]; then
+ info "Can't test cross-compiled build."
+ return
+ fi
+
cd _build/bindist/ghc-*/
run ./configure --prefix="$TOP"/_build/install
run "$MAKE" install
@@ -486,6 +497,11 @@ case "$(uname)" in
*) fail "uname $(uname) is not supported" ;;
esac
+if [ -n "$CROSS_TARGET" ]; then
+ info "Cross-compiling for $CROSS_TARGET..."
+ target_triple="$CROSS_TARGET"
+fi
+
set_toolchain_paths
case $1 in
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a0d8a5536c0db649642044a33c0d73e6c28e62...17d0b228d440439aa03a02dae708ae5b559510fd
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a0d8a5536c0db649642044a33c0d73e6c28e62...17d0b228d440439aa03a02dae708ae5b559510fd
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200527/4f4a00ce/attachment-0001.html>
More information about the ghc-commits
mailing list