summaryrefslogtreecommitdiff
path: root/.circleci
Commit message (Collapse)AuthorAgeFilesLines
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Drop Docker imagesBen Gamari2019-03-0111-545/+0
| | | | These have been moved to the ghc/ci-images project.
* Update CI images to GHC-8.4.4 & cabal-install-2.4.1.0Oleg Grenrus2019-02-227-59/+69
| | | | | | | | | | | | Use official bindists, except for Debian 9/Stretch http://downloads.haskell.org/debian/ is used. (There are no recent GHC/cabal-install for Debian 8/Jessie there) Use v2-update/v2-install to install Haskell tools. Try to unify structure of the different Dockerfiles, incl installing GHC in one step (this will prevent sublayers from existing, making final image slightly smaller)
* CircleCI: Fix check for git push retry limit.David Eichmann2018-12-211-2/+2
| | | | | | | | | | | | Test Plan: Observe CircleCI Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5464
* circleci: Fix LLVM buildBen Gamari2018-12-181-7/+3
| | | | Might as well make sure it works before we retire it.
* circleci: Don't use xlarge instancesBen Gamari2018-12-171-13/+0
| | | | | | As discussed on ghc-devops, CircleCI is changing their billing policy to require users of instances larger than `medium` to use a paid account. Consequently these instances will no longer be available to us starting tomorrow.
* gitlab-ci: Add aarch64 targetBen Gamari2018-12-151-0/+69
|
* gitlab-ci: Add lintersBen Gamari2018-12-131-0/+30
| | | | | These are taken from our previous arcanist linters as well as the gitolite hooks but with some heavy refactoring.
* gitlab-ci: Add LLVM wayBen Gamari2018-12-134-10/+20
|
* circleci: ignore gitlab branches for all jobs in the validate workflowAlp Mestanogullari2018-12-111-13/+26
| | | | | | | | | | | | | | | | Our previous attempt ended up breaking the CircleCI config, but this one has been tested, see: https://circleci.com/gh/ghc/ghc/tree/alp%2Fcircleci%2Fignore-gitlab-branches which shows the builds getting triggered correctly. I also pushed the same branch under 'gitlab/alp/test', and that didn't trigger any build, as desired. Reviewers: bgamari Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5429
* circleci: Add integer-simple build targetBen Gamari2018-12-112-1/+28
| | | | Fixes #15915.
* CircleCI: Add configurations for Centos 7 and Debian 9Ben Gamari2018-12-117-56/+225
|
* hadrian: Drop nix build scriptBen Gamari2018-12-081-0/+45
| | | | | It's currently too out-of-date to build current hadrian and is arguably completely broken anyways (see #15794).
* CircleCI: Don't ignore gitlab/.* branchesBen Gamari2018-12-071-3/+0
| | | | | | | This was added (for good reasons) in b9260e925e998f715865ae043bdb9f779ab5f849 but it seems this field isn't allowed in this context. Sadly there doesn't appear to be an easy way to accomplish what we are after with CircleCI's rather restrictive configuration language. Sigh.
* Add GitLab CIBen Gamari2018-12-015-14/+18
|
* Add a Gitlab CI script that runs Circle CI validation jobsAlp Mestanogullari2018-11-301-13/+27
| | | | | | | | | And put it to use for running i386 and x86_64 linux validate, x86_64 darwin validate and building with hadrian. For all the validate jobs, we save the artifacts (bindist + test results for now) in Circle CI and subsequently grab them in Gitlab. The nice side effect is that merge requests now show the change in test results from the patches and let you download or browse the artifacts.
* CircleCI: More cleanupBen Gamari2018-11-244-14/+29
|
* CircleCI: Clean up docker imageBen Gamari2018-11-244-34/+16
|
* circleci: Actually build with in-tree GMP on DarwinDario Bertini2018-11-222-3/+2
| | | | Fixes #15404.
* circleci: Disable pushing of test metrics if not validating upstreamBen Gamari2018-11-121-0/+4
|
* testsuite: Save performance metrics in git notes.David Eichmann2018-11-072-2/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes the following improvement: - Automatically records test metrics (per test environment) so that the programmer need not supply nor update expected values in *.T files. - On expected metric changes, the programmer need only indicate the direction of change in the git commit message. - Provides a simple python tool "perf_notes.py" to compare metrics over time. Issues: - Using just the previous commit allows performance to drift with each commit. - Currently we allow drift as we have a preference for minimizing false positives. - Some possible alternatives include: - Use metrics from a fixed commit per test: the last commit that allowed a change in performance (else the oldest metric) - Or use some sort of aggregate since the last commit that allowed a change in performance (else all available metrics) - These alternatives may result in a performance issue (with the test driver) having to heavily search git commits/notes. - Run locally, performance tests will trivially pass unless the tests were run locally on the previous commit. This is often not the case e.g. after pulling recent changes. Previously, *.T files contain statements such as: ``` stats_num_field('peak_megabytes_allocated', (2, 1)) compiler_stats_num_field('bytes allocated', [(wordsize(64), 165890392, 10)]) ``` This required the programmer to give the expected values and a tolerance deviation (percentage). With this patch, the above statements are replaced with: ``` collect_stats('peak_megabytes_allocated', 5) collect_compiler_stats('bytes allocated', 10) ``` So that programmer must only enter which metrics to test and a tolerance deviation. No expected value is required. CircleCI will then run the tests per test environment and record the metrics to a git note for that commit and push them to the git.haskell.org ghc repo. Metrics will be compared to the previous commit. If they are different by the tolerance deviation from the *.T file, then the corresponding test will fail. By adding to the git commit message e.g. ``` # Metric (In|De)crease <metric(s)> <options>: <tests> Metric Increase ['bytes allocated', 'peak_megabytes_allocated'] \ (test_env='linux_x86', way='default'): Test012, Test345 Metric Decrease 'bytes allocated': Test678 Metric Increase: Test711 ``` This will allow the noted changes (letting the test pass). Note that by omitting metrics or options, the change will apply to all possible metrics/options (i.e. in the above, an increase for all metrics in all test environments is allowed for Test711) phabricator will use the message in the description Reviewers: bgamari, hvr Reviewed By: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #12758 Differential Revision: https://phabricator.haskell.org/D5059
* Revert "CircleCI: Build DWARF-enabled Linux bindists"Ben Gamari2018-11-072-30/+0
| | | | This reverts commit 406978c478e4b14e677f396499420d7b8e5d21fd.
* CircleCI: Build DWARF-enabled Linux bindistsBen Gamari2018-11-072-0/+30
|
* circleci: Store test results of slow validation buildsBen Gamari2018-10-301-0/+1
|
* circleci: Build with in-tree GMP on DarwinBen Gamari2018-10-291-1/+3
| | | | | | Fixes #15404. (cherry picked from commit 578012be13eb1548050d51c0a23bd1a98423f03e)
* circleci: Create missing test-results directoryBen Gamari2018-10-021-1/+3
|
* circleci: Run slowtest with multiple threadsBen Gamari2018-10-011-1/+1
|
* use *test instead of *slowtest for llvm validation on Circle CIAlp Mestanogullari2018-08-121-1/+1
| | | | | | | | | | | | | | | | | | Summary: Since the LLVM backend is slow enough that *slowtest can't run in the allocated time on Circle CI, let's just use *test. If that still doesn't fit in the allocated 5 hours, we can try running just the compiler tests. Test Plan: Circle CI validation for LLVM Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D5033
* circleci: Reduce compression effort to 3Ben Gamari2018-08-081-1/+2
|
* circleci: Reduce build verbosityBen Gamari2018-08-081-1/+1
|
* circleci: Fix documentation buildingBen Gamari2018-08-086-15/+95
|
* circleci: Don't build validate-x86_64-linux-debug unregisterisedBen Gamari2018-08-051-1/+1
| | | | | | | | | | | | | | Summary: This was a cut-and-paste error. Reviewers: alpmestan Reviewed By: alpmestan Subscribers: alpmestan, rwbarton, thomie, carter GHC Trac Issues: #15466 Differential Revision: https://phabricator.haskell.org/D5037
* circleci: Detect core countBen Gamari2018-07-061-4/+6
| | | | | | | | | | | | | | | Test Plan: Try `./validate`, CircleCI build; make sure core count detection works in both cases. Reviewers: alpmestan Reviewed By: alpmestan Subscribers: rwbarton, thomie, carter GHC Trac Issues: #14470 Differential Revision: https://phabricator.haskell.org/D4897
* circleci: Add a reference to the documentation on the WikiBen Gamari2018-06-161-0/+3
|
* circleci: Bump fedora docker image tagBen Gamari2018-06-161-1/+1
|
* Bump supported LLVM version to 6.0Ben Gamari2018-06-151-2/+2
| | | | This seems to fix a number of segmentation faults.
* circleci: Remove systemd from Fedora nsswitch configurationBen Gamari2018-06-151-0/+5
| | | | Lest we end up with a non-functional user/group lookup, resulting in #15230.
* Run Linux slow validate nightly on Circle CIAlp Mestanogullari2018-06-081-0/+17
|
* Update docker images to use GHC 8.4.2 and cabal-install-2.2mrkkrp2018-05-054-30/+38
| | | | | | | The ‘haskell’ images are not being updated and there is no image with GHC 8.4.2, so we probably should not use them anymore. I adapted Dockerfiles used by those images so the end result is almost the same except we get newer GHC and cabal-install.
* CircleCI: Save test results as JUnit XMLMatthew Pickering2018-05-031-1/+13
| | | | | | | | | | | | Reviewers: mrkkrp, bgamari Reviewed By: mrkkrp, bgamari Subscribers: thomie, carter GHC Trac Issues: #15093 Differential Revision: https://phabricator.haskell.org/D4646
* Fix GHC collector flavor for Fedora job (Circle CI)mrkkrp2018-04-101-1/+1
|
* Run tests after artifact collectionmrkkrp2018-04-071-5/+5
| | | | | | | Since for every job there are failing tests, if we try to upload artifacts after tests, we won't get any. As a temporary measure I suggest uploading artifacts before running tests. Once tests are fixed, we should peform artifact uploading after tests again.
* Collect build artifacts with S3mrkkrp2018-04-071-20/+22
|
* Rename CI docker imagesmrkkrp2018-03-291-7/+7
| | | | Now we use the images from the ‘ghcci’ account on docker hub.
* circleci: Bump Hackage index stateBen Gamari2018-03-261-1/+1
|
* Add a job running on Fedoramrkkrp2018-03-262-0/+45
|
* Add a build with 32bit Ubuntu containermrkkrp2018-03-192-0/+54
|
* Use docker images with non-root usermrkkrp2018-03-073-31/+27
| | | | That image creates an unprivileged user to run the test suite under.
* circleci: Simplify Hadrian buildBen Gamari2018-02-261-9/+2
| | | | | This uses the build.sh script included in the Hadrian tree, ensuring that we will build Cabal from git if necessary.
* circleci: Skip performance testsBen Gamari2018-02-201-2/+2
| | | | Once we finally get the automation for #12758 we can re-enable these.