Clean up .circleci
authorBen Gamari <ben@smart-cactus.org>
Tue, 11 Jun 2019 03:47:47 +0000 (23:47 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Thu, 13 Jun 2019 06:51:50 +0000 (02:51 -0400)
Move prepare-system.sh to .gitlab and remove everything else.

.circleci/config.yml [deleted file]
.circleci/fetch-submodules.sh [deleted file]
.circleci/push-test-metrics.sh [deleted file]
.gitlab-ci.yml
.gitlab/prepare-system.sh [moved from .circleci/prepare-system.sh with 100% similarity]

diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644 (file)
index 261116d..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-# Questions about this file?
-# See https://gitlab.haskell.org/ghc/ghc/wikis/continuous-integration/usage.
-
-version: 2
-
-aliases:
-  - &defaults
-    working_directory: ~/ghc
-  - &prepare
-    run:
-      name: prepare-system
-      command: .circleci/prepare-system.sh
-  - &submodules
-    run:
-      name: submodules
-      command: .circleci/fetch-submodules.sh
-  - &buildenv
-    # ideally we would simply set THREADS here instead of re-detecting it every
-    # time we need it below. Unfortunately, there is no way to set an environment
-    # variable with the result of a shell script.
-    SKIP_PERF_TESTS: NO
-    VERBOSE: 2
-  - &boot
-    run:
-      name: Boot
-      command: |
-        ./boot
-  - &set_git_identity
-      run:
-        name: Set Git Identity
-        command: |
-          git config user.email "ghc-circleci@haskell.org"
-          git config user.name "GHC CircleCI"
-  - &configure_unix
-    run:
-      name: Configure
-      command: ./configure 
-  - &configure_unix_32
-    run:
-      name: Configure
-      command: |
-        setarch i386 ./configure --with-ghc=/opt/ghc-i386/8.4.2/bin/ghc
-  - &configure_bsd
-    run:
-      name: Configure
-      command: ./configure --target=x86_64-unknown-freebsd10
-  - &configure_unreg
-    run:
-      name: Configure
-      command: ./configure --enable-unregisterised
-  - &make
-    run:
-      name: Build
-      command: "make -j`mk/detect-cpu-count.sh` V=0"
-  - &build_hadrian
-    run:
-      name: Build GHC using Hadrian
-      command: |
-        cabal update
-        hadrian/build.sh -j`mk/detect-cpu-count.sh`
-  - &test
-    run:
-      name: Test
-      command: |
-        mkdir -p test-results
-        METRICS_FILE=$(mktemp)
-        echo "export METRICS_FILE=$METRICS_FILE" >> $BASH_ENV
-        make test THREADS=`mk/detect-cpu-count.sh` SKIP_PERF_TESTS=$SKIP_PERF_TESTS TEST_ENV=$TEST_ENV JUNIT_FILE=../../test-results/junit.xml METRICS_FILE=$METRICS_FILE
-  - &store_test_results
-    store_test_results:
-      path: test-results
-  - &push_perf_note
-    run:
-      name: Push Performance Git Notes
-      command: .circleci/push-test-metrics.sh
-  - &store_test_artifacts
-    store_artifacts:
-      # we might want to add the whole output of the test phase
-      # too at some point
-      path: test-results/junit.xml
-  - &slowtest
-    run:
-      name: Full Test
-      command: |
-        mkdir -p test-results
-        make slowtest SKIP_PERF_TESTS=YES THREADS=`mk/detect-cpu-count.sh` JUNIT_FILE=../../test-results/junit.xml
-  - &bindist
-    run:
-      name: Create bindist
-      # Reduce compression effort to 3
-      command: make binary-dist TAR_COMP_OPTS="-2" && mv ghc*.tar.xz ghc.tar.xz
-      # Building bindist takes ~15 minutes without output, account for
-      # that.
-      no_output_timeout: "30m"
-  - &store_bindist
-    store_artifacts:
-      path: ghc.tar.xz
-  - &only_release_tags
-    tags:
-      only: /^ghc-.*/
-  - &ignore_gitlab_branches
-    branches:
-      ignore: /^gitlab\/.*/
-
-jobs:
-  "validate-x86_64-freebsd":
-    docker:
-      - image: ghcci/x86_64-freebsd
-    environment:
-      TARGET: FreeBSD
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-freebsd
-      TEST_ENV: x86_64-freebsd
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_bsd
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-darwin":
-    macos:
-      xcode: "9.0"
-    environment:
-      # Disable sphinx PDF output as MacTeX apparently doesn't provide xelatex
-      BUILD_SPHINX_PDF: "NO"
-      MACOSX_DEPLOYMENT_TARGET: "10.7"
-      # Only Sierra and onwards supports clock_gettime. See #12858
-      ac_cv_func_clock_gettime: "no"
-      GHC_COLLECTOR_FLAVOR: x86_64-darwin
-      <<: *buildenv
-      TEST_ENV: x86_64-darwin
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-linux-deb8":
-    docker:
-      - image: ghcci/x86_64-linux-deb8:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-linux
-      TEST_ENV: x86_64-linux-deb8
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-linux-deb9-integer-simple":
-    docker:
-      - image: ghcci/x86_64-linux-deb9:0.2
-    environment:
-      <<: *buildenv
-      INTEGER_LIBRARY: integer-simple
-      GHC_COLLECTOR_FLAVOR: x86_64-linux-deb9
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-linux-deb9":
-    docker:
-      - image: ghcci/x86_64-linux-deb9:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-linux-deb9
-      TEST_ENV: x86_64-linux-deb9
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-hadrian-x86_64-linux-deb8":
-    docker:
-      - image: ghcci/x86_64-linux-deb8:0.1
-    environment:
-      <<: *buildenv
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *build_hadrian
-
-  "validate-x86_64-linux-deb8-unreg":
-    docker:
-      - image: ghcci/x86_64-linux-deb8:0.1
-    environment:
-      <<: *buildenv
-      TEST_ENV: x86_64-linux-deb8-unreg
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unreg
-      - *make
-      - *test
-      - *store_test_results
-      - *push_perf_note
-      - *store_test_artifacts
-
-  "validate-x86_64-linux-deb9-llvm":
-    docker:
-      - image: ghcci/x86_64-linux-deb9:0.2
-    environment:
-      <<: *buildenv
-      BUILD_FLAVOUR: perf-llvm
-      TEST_ENV: x86_64-linux-deb9-llvm
-    steps:
-      - run:
-          name: Verify that llc works
-          command: llc
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  # Nightly build with -DDEBUG using devel2 flavour
-  "validate-x86_64-linux-deb8-debug":
-    docker:
-      - image: ghcci/x86_64-linux-deb8:0.1
-    environment:
-      BUILD_FLAVOUR: devel2
-      <<: *buildenv
-      TEST_ENV: x86_64-linux-deb8-debug
-      SKIP_PERF_TESTS: YES
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-i386-linux-deb9":
-    docker:
-      - image: ghcci/i386-linux-deb9:0.2
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: i386-linux-deb9
-      TEST_ENV: i386-linux-deb9
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix_32
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-i386-linux-deb8":
-    docker:
-      - image: ghcci/i386-linux-deb8:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: i386-linux
-      TEST_ENV: i386-linux-deb8
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix_32
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-linux-centos7":
-    docker:
-      - image: ghcci/x86_64-linux-centos7:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-centos7
-      LANG: en_US.UTF-8
-      TEST_ENV: x86_64-centos7
-      # Sphinx is too old
-      BUILD_SPHINX_PDF: NO
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "validate-x86_64-linux-fedora27":
-    docker:
-      - image: ghcci/x86_64-linux-fedora27:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-fedora
-      TEST_ENV: x86_64-linux-fedora27
-    steps:
-      - checkout
-      - *set_git_identity
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *bindist
-      - *store_bindist
-      - *test
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-  "slow-validate-x86_64-linux-deb8":
-    docker:
-      - image: ghcci/x86_64-linux-deb8:0.1
-    environment:
-      <<: *buildenv
-      GHC_COLLECTOR_FLAVOR: x86_64-linux-deb8
-    steps:
-      - checkout
-      - *prepare
-      - *submodules
-      - *boot
-      - *configure_unix
-      - *make
-      - *slowtest
-      - *store_test_results
-      - *store_test_artifacts
-      - *push_perf_note
-
-workflows:
-  version: 2
-  validate:
-    jobs:
-    - validate-x86_64-linux-deb8:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    # FreeBSD disabled: https://github.com/haskell/unix/issues/102
-    # - validate-x86_64-freebsd
-    - validate-x86_64-darwin:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    - validate-x86_64-linux-deb8-llvm:
-        filters:
-          <<: *ignore_gitlab_branches
-    - validate-i386-linux-deb8:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    - validate-x86_64-linux-deb9:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    - validate-i386-linux-deb9:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    - validate-x86_64-linux-centos7:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-    - validate-hadrian-x86_64-linux-deb8:
-        filters:
-          <<: *ignore_gitlab_branches
-    - validate-x86_64-linux-fedora27:
-        filters:
-          <<: [*only_release_tags, *ignore_gitlab_branches]
-
-  nightly:
-    triggers:
-      - schedule:
-          cron: "0 0 * * *"
-          filters:
-            branches:
-              only:
-                - master
-    jobs:
-    - validate-x86_64-linux-deb8-unreg
-    - validate-x86_64-linux-deb8-llvm
-    - validate-x86_64-linux-deb8-debug
-    - validate-x86_64-linux-deb9
-    - validate-x86_64-linux-deb9-integer-simple
-    - slow-validate-x86_64-linux-deb8
-
-notify:
-  webhooks:
-    - url: https://phabricator.haskell.org/harbormaster/hook/circleci/
diff --git a/.circleci/fetch-submodules.sh b/.circleci/fetch-submodules.sh
deleted file mode 100755 (executable)
index 7279d21..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-# Use github.com/ghc for those submodule repositories we couldn't connect to.
-git config remote.origin.url git://github.com/ghc/ghc.git
-git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
-git submodule init # Don't be quiet, we want to show these urls.
-git submodule --quiet update --recursive # Now we can be quiet again.
diff --git a/.circleci/push-test-metrics.sh b/.circleci/push-test-metrics.sh
deleted file mode 100755 (executable)
index e383a4c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env bash
-# vim: sw=2 et
-set -euo pipefail
-
-fail() {
-  echo "ERROR: $*" >&2
-  exit 1
-}
-
-if [ "$CIRCLE_REPOSITORY_URL" != "git@github.com:ghc/ghc.git" ]; then
-  exit 0
-fi
-
-GHC_ORIGIN=git@git.haskell.org:ghc
-
-# Add git.haskell.org as a known host.
-echo "|1|F3mPVCE55+KfApNIMYQ3Dv39sGE=|1bRkvJEJhAN2R0LE/lAjFCEJGl0= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBUZS9jGBkE5UzpSo6irnIgcQcfzvbuIOsFc8+N61FwtZncRntbaKPuUimOFPgeaUZLl6Iajz6IIs7aduU0/v+I=" >> ~/.ssh/known_hosts
-echo "|1|2VUMjYSRVpT2qJPA0rA9ap9xILY=|5OThkI4ED9V0J+Es7D5FOD55Klk= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+3TLluLAO4lkW60W+N2DFkS+WoRFGqLwHzgd1ifxG9TIm31wChPY3E/hgMnJmgGqWCF4UDUemmyCycEaL7FtKfzjTAclg9EfpQnozyE3T5hIo2WL7SN5O8ttG/bYGuDnn14jLnWwJyN4oz/znWFiDG9e2Oc9YFNlQ+PK8ae5xR4gqBB7EOoj9J1EiPqG2OXRr5Mei3TLsRDU6fnz/e4oFJpKWWeN6M63oePv0qoaGjxcrATZUWsuWrxVMmYo9kP1xRuFJbAUw2m4uVP+793SW1zxySi1HBMtJG+gCDdZZSwYbkV1hassLWBHv1qPttncfX8Zek3Z3VolaTmfWJTo9" >> ~/.ssh/known_hosts
-
-# Check that a git notes dont already exist.
-# This is a percausion as we reset refs/notes/perf and we want to avoid data loss.
-if [ $(git notes --ref=perf list | wc -l) -ne 0 ]
-then
-  fail "Found an existing git note on HEAD. Expected no git note."
-fi
-
-# Assert that the METRICS_FILE exists and can be read.
-if [ "$METRICS_FILE" = "" ] || ! [ -r $METRICS_FILE ]
-then
-  fail "Metrics file not found: $METRICS_FILE"
-fi
-
-# Reset the git notes and append the metrics file to the notes, then push and return the result.
-# This is favoured over a git notes merge as it avoids potential data loss/duplication from the merge strategy.
-function reset_append_note_push {
-  git fetch -f $GHC_ORIGIN refs/notes/perf:refs/notes/perf || true
-  echo "git notes --ref=perf append -F $METRICS_FILE HEAD"
-  git notes --ref=perf append -F $METRICS_FILE HEAD
-  git push $GHC_ORIGIN refs/notes/perf
-}
-
-# Push the metrics file as a git note. This may fail if another task pushes a note first. In that case
-# the latest note is fetched and appended.
-MAX_RETRY=20
-until reset_append_note_push || [ $MAX_RETRY -le 0 ]
-do
-  ((MAX_RETRY--))
-  echo ""
-  echo "Failed to push git notes. Fetching, appending, and retrying... $MAX_RETRY retries left."
-done
index d17d366..c83b10f 100644 (file)
@@ -154,7 +154,7 @@ lint-release-changelogs:
   script:
     - cabal update
     - git clean -xdf && git submodule foreach git clean -xdf
-    - bash .circleci/prepare-system.sh
+    - .gitlab/prepare-system.sh
     - if [[ -d ./cabal-cache ]]; then cp -R ./.cabal-cache ~/.cabal-cache; fi
     - ./boot
     - ./configure $CONFIGURE_ARGS
@@ -205,7 +205,7 @@ hadrian-ghc-in-ghci:
     - cabal update
     - cd hadrian; cabal new-build --project-file=ci.project; cd ..
     - git clean -xdf && git submodule foreach git clean -xdf
-    - bash .circleci/prepare-system.sh
+    - .gitlab/prepare-system.sh
     - if [[ -d ./cabal-cache ]]; then cp -R ./.cabal-cache ~/.cabal-cache; fi
     - ./boot
     - ./configure $CONFIGURE_ARGS
@@ -353,7 +353,7 @@ validate-x86_64-darwin:
         echo "EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump" >> mk/build.mk
       fi
 
-    - bash .circleci/prepare-system.sh
+    - .gitlab/prepare-system.sh
     # workaround for docker permissions
     - sudo chown ghc:ghc -R .
   after_script: