Giter Site home page Giter Site logo

dlang / ci Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 30.0 643 KB

dlang CI testing pipelines

Home Page: https://buildkite.com/dlang

License: Boost Software License 1.0

Groovy 6.25% Shell 76.04% Python 1.52% Dockerfile 6.86% Jinja 9.33%
ansible buildkite ci dlang dub hetzner scaleway

ci's People

Contributors

9il avatar alexandrumc avatar aliak00 avatar andralex avatar andrey-zherikov avatar atilaneves avatar bbasile avatar cybershadow avatar dkorpel avatar dlang-bot avatar dnadlinger avatar feepingcreature avatar geod24 avatar ibuclaw avatar jacob-carlborg avatar jinshil avatar joakim-noah avatar kinke avatar kubo39 avatar laurenttreguier avatar martinnowak avatar matthias-wende-sociomantic avatar maxhaton avatar mihails-strasuns-sociomantic avatar petarkirov avatar razvann7 avatar schveiguy avatar thewilsonator avatar walterbright avatar wilzbach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ci's Issues

Restart individual nodes in the pipeline

#36 works great for what it's intended to do, but I think over 90% of the spurious failures are due to only dub or vibe.d, so an option restart a leaf node (basically a third-party project a.t.m.) would be very handy.

For example, I had to restart Jenkins because of dub here:
https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fphobos/detail/PR-5648/3/pipeline/173
The whole run lasted 09:15 min, while the dub node took about 1:30 mins, meaning this option could save around 7-8 mins.

Avoid period rebuild of all open PRs

My guess is that this happens because Build fork PRs (merged with base branch) is selected and thus Jenkins considers the PR builds stale when master changed (similar to auto-tester atm.).
As initially decided we don't to be pedantically correct and avoid the quadratic retesting behavior.

Seems like that leaves us with 2 choices, do the merge ourselves (and ask Jenkins to only build PR heads) or disable the periodic organization scans.
Not clear if env.CHANGE_TARGET still get's set with disabled merges, but looks OKish https://github.com/jenkinsci/branch-api-plugin/blob/a5e6362d03fdf31f6d7d7905885b38b67464a532/src/main/java/jenkins/branch/BranchNameContributor.java#L63.

setup server

Executors should be sandboxed away from Jenkins.
Should be scalable to more executors and VMs for Win/OSX.
At best maintain (cleanup up) working dirs to save on download/clone time and reduce connectivity issues.

Already have a decent machine (Dedibox® LT 2016 - Online.net) to start with.

dead lock with parallel PRs

Just happened b/c Jenkins scheduled all open druntime PRs after merging the Jenkinsfile into master.
Turns out that multiple jenkins jobs can starve waiting for an executor, taking up all executor slots.
Any node step requires to allocate an executor.

allunittests: ocean.task.util.Timer_test: testing ...Unhandled exception in epoll/scheduler

allunittests: ocean.task.util.Timer_test: testing ...Unhandled exception in epoll/scheduler
	unit test has failed (./src/ocean/task/util/Timer_test.d:124)
submodules/makd/Makd.mak:577: recipe for target '/var/lib/jenkins/dlang_projects/sociomantic-tsunami/ocean/build/production/tmp/allunittests.stamp' failed
make: *** [/var/lib/jenkins/dlang_projects/sociomantic-tsunami/ocean/build/production/tmp/allunittests.stamp] Aborted (core dumped)

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdruntime/detail/PR-2083/17/pipeline

Jenkins fails to clone/setup druntime

https://ci.dlang.io/job/dlang-org/job/tools/job/PR-302/1/console

[dmd] Running shell script
+ make -f posix.mak AUTO_BOOTSTRAP=1 --jobs=4
make -C src -f posix.mak all
make[1]: Entering directory '/var/lib/jenkins/dlang_ci/dmd/src'
no cpu specified, assuming X86
make[1]: /tmp/.host_dmd-2.072.2/dmd2/linux/bin64/dmd: Command not found
c++ -Wno-deprecated -Wstrict-aliasing -Werror -fno-exceptions -fno-rtti -D__pascal= -DMARS=1 -DTARGET_LINUX=1 -DDM_TARGET_CPU_X86=1 -m64 -fPIC -std=gnu++98 -Idmd/tk dmd/backend/optabgen.c -o ../generated/linux/release/64/optabgen
  (CC)  ROOT_OBJS  dmd/root/newdelete.c
c++ -c -o../generated/linux/release/64/newdelete.o -Wno-deprecated -Wstrict-aliasing -Werror -fno-exceptions -fno-rtti -D__pascal= -DMARS=1 -DTARGET_LINUX=1 -DDM_TARGET_CPU_X86=1 -m64 -fPIC -std=gnu++98 -Idmd/root -MMD -MF ../generated/linux/release/64/newdelete.deps dmd/root/newdelete.c
CC="c++" /tmp/.host_dmd-2.072.2/dmd2/linux/bin64/dmd -conf=/tmp/.host_dmd-2.072.2/dmd2/linux/bin64/dmd.conf -lib -of../generated/linux/release/64/lexer.a -m64 -J../generated/linux/release/64 -L-lstdc++ -version=MARS -fPIC -w -de dmd/console.d dmd/entity.d dmd/errors.d dmd/globals.d dmd/id.d dmd/identifier.d dmd/lexer.d dmd/tokens.d dmd/utf.d dmd/root/array.d dmd/root/ctfloat.d dmd/root/file.d dmd/root/filename.d dmd/root/outbuffer.d dmd/root/port.d dmd/root/rmem.d dmd/root/rootobject.d dmd/root/stringtable.d dmd/root/hash.d
echo "$DEFAULT_DMD_CONF" > ../generated/linux/release/64/dmd.conf
Error: cannot find source code for runtime library file 'object.d'
       dmd might not be correctly installed. Run 'dmd -man' for installation instructions.
       config file: /tmp/.host_dmd-2.072.2/dmd2/linux/bin64/dmd.conf
import path[0] = /tmp/.host_dmd-2.072.2/dmd2/linux/bin64/../../src/phobos
import path[1] = /tmp/.host_dmd-2.072.2/dmd2/linux/bin64/../../src/druntime/import
posix.mak:447: recipe for target '../generated/linux/release/64/lexer.a' failed
make[1]: *** [../generated/linux/release/64/lexer.a] Error 1
make[1]: *** Waiting for unfinished jobs....
../generated/linux/release/64/optabgen
OPTABGEN... generating files
mv debtab.c optab.c cdxxx.c elxxx.c fltables.c tytab.c ../generated/linux/release/64
make[1]: Leaving directory '/var/lib/jenkins/dlang_ci/dmd/src'
posix.mak:8: recipe for target 'all' failed
make: *** [all] Error 2

Also this while probably not related, this

[dmd] First time build. Skipping changelog.
[dmd] fatal: bad object fdc308de96c15cf1a93d94970968b0b0a5ad968c

because it looks like druntime was properly cloned:

[druntime]  > git rev-parse --is-inside-work-tree # timeout=10
[druntime] Fetching changes from the remote Git repository
[druntime]  > git config remote.origin.url https://github.com/dlang/druntime.git # timeout=10
[druntime] Cleaning workspace
[druntime]  > git rev-parse --verify HEAD # timeout=10
[druntime] Resetting working tree
[druntime]  > git reset --hard # timeout=10

Always checks out upstream/master (instead of the PR branch)

tl;dr: dlang/dmd#7688 should have shown an CI error.
It's only displayed on the builds now

src/zmqd.d(462,40): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(477,40): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(567,46): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(582,46): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(624,52): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(636,52): Error: `data.ptr` cannot be used in `@safe` code, use `&data[0]` instead
src/zmqd.d(1662,54): Error: `value.ptr` cannot be used in `@safe` code, use `&value[0]` instead
src/zmqd.d(840,66): Error: template instance zmqd.Socket.setArrayOption!() error instantiating
src/zmqd.d(1892,9): Error: `items.ptr` cannot be used in `@safe` code, use `&items[0]` instead

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdruntime/detail/PR-2018/7/pipeline

On dlang/dmd#7688 the log is:

> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/dlang/dmd.git # timeout=10
Cleaning workspace
 > git rev-parse --verify HEAD # timeout=10
Resetting working tree
 > git reset --hard # timeout=10
 > git clean -fdx # timeout=10
Fetching upstream changes from https://github.com/dlang/dmd.git
 > git --version # timeout=10
 > git fetch --tags --progress https://github.com/dlang/dmd.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse origin/master^{commit} # timeout=10
Checking out Revision b1f6aec796286a08395d689b54dacdd01d141f9e (origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b1f6aec796286a08395d689b54dacdd01d141f9e
Commit message: "Merge pull request #7695 from rainers/default_platform_toolset"
 > git rev-list --no-walk b1f6aec796286a08395d689b54dacdd01d141f9e # timeout=10

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-7688/8/

Vibe.d: linker errors

+ cd tests/vibe.web.rest.auth
+ dub --compiler=dmd --override-config=vibe-d:core/libevent --build-mode=separate
Performing "debug" build using dmd for x86_64.
diet-ng 1.4.3: target for configuration "library" is up to date.
stdx-allocator 2.77.0: target for configuration "library" is up to date.
vibe-d:utils 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:data 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:core 0.8.3-alpha.1: target for configuration "libevent" is up to date.
vibe-d:crypto 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:stream 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:textfilter 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:inet 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:tls 0.8.3-alpha.1: target for configuration "openssl" is up to date.
vibe-d:http 0.8.3-alpha.1: target for configuration "library" is up to date.
vibe-d:web 0.8.3-alpha.1: target for configuration "library" is up to date.
tests ~master: building configuration "application"...
Non-@safe methods are deprecated in REST interfaces - Mark Service.getPublic as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getAny as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getAnyA as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe role evaluator methods are deprecated - annotate Service.getAdmin() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getAdmin as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe role evaluator methods are deprecated - annotate Service.getAdminA() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getAdminA as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe role evaluator methods are deprecated - annotate Service.getMember() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getMember as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe role evaluator methods are deprecated - annotate Service.getAdminMember() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getAdminMember as @safe.
Non-@safe .authenticate() methods are deprecated - annotate Service.authenticate() with @safe or @trusted.
Non-@safe role evaluator methods are deprecated - annotate Service.getNobody() with @safe or @trusted.
Non-@safe methods are deprecated in REST interfaces - Mark Service.getNobody as @safe.
Linking...
collect2: error: ld returned 1 exit status
Error: linker exited with status 1

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-7420/22/pipeline

Test building DMD with itself?

Might be a good idea to build DMD with itself to ensure it can build itself fine. Can't seem to build a valid release version with the latest DMD.

ERROR: Issue with creating launcher for agent runner-01-gce. The agent has not been fully initialized yet

ERROR: Issue with creating launcher for agent runner-01-gce. The agent has not been fully initialized yet
ERROR: Issue with creating launcher for agent runner-01-gce. The agent has not been fully initialized yet
remote file operation failed: /var/lib/jenkins/dlang_projects@5 at hudson.remoting.Channel@1d0a274f:JNLP4-connect connection from 16.251.189.35.bc.googleusercontent.com/35.189.251.16:44424: hudson.remoting.ChannelClosedException: Remote call on JNLP4-connect connection from 16.251.189.35.bc.googleusercontent.com/35.189.251.16:44424 failed. The channel is closing down or has closed down

From: https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fphobos/detail/PR-6139/5/pipeline/219

Integrate coverage testing

Generate Coverage report

This should nearly at the end as it messes up the build repositories. It should be something similar to:

stage ('Test coverage') {
   def repo_name = /python3 -c "import sys, json; print(json.load(sys.stdin)['repository']['name']).toupper()"/
   switch (repo_name) {
      case 'dmd':
          sh 'mv src/dmd src/host_dmd'
          sh 'make -j$N -C dmd/src -f posix.mak MODEL=$MODEL HOST_DMD=./host_dmd clean'
          sh 'make -j$N -C dmd/src -f posix.mak MODEL=$MODEL HOST_DMD=./host_dmd dmd.conf'
          sh 'make -j$N -C dmd/src -f posix.mak MODEL=$MODEL HOST_DMD=./host_dmd ENABLE_COVERAGE=1'
          sh 'make -j$N -C dmd/test MODEL=$MODEL ARGS="-O -inline -release" DMD_TEST_COVERAGE=1'
          sh 'mv src/host dmd src/dmd'
          break;
      case 'druntime':
          sh 'TEST_COVERAGE="1" make -j$N -C . -f posix.mak MODEL=$MODEL unittest-debug'
          break;
      case 'phobos':
          sh 'ENABLE_COVERAGE="1" make -f posix.mak MODEL=$MODEL unittest-debug'
          // tests needs to be run separately due to https://issues.dlang.org/show_bug.cgi?id=16397
          sh 'make -f posix.mak $(find std etc -name "*.d" | sed "s/[.]d$/.test")'
          break;
      default:
   }

CodeCov

Assuming the CodeCov tokens (can be fetched at e.g. https://codecov.io/gh/dlang/phobos/settings) are loaded in the environment something as CODECOV_TOKEN_PHOBOS (and similarly for dmd and druntime) like this should work:

stage ("Upload coverage report") {
    def repo_name = /python3 -c "import sys, json; print(json.load(sys.stdin)['repository']['name']).toupper()"/
    sh 'curl -s https://codecov.io/bash | bash -s - -t CODECOV_TOKEN_${DMD}'
}

CodeCov uptime doesn't seem to be perfect, we might want to provide a fallback URL as well - see e.g.
dlang/phobos#5140

(though I am not sure what's the proper behavior as the CodeCov API is then probably down as well)

Vibe.d - Memory allocation failed

Linking...
To force a rebuild of up-to-date targets, run again with --force.
Running ./tests 
Watchdog receiver 1
Watchdog receiver 2
Watchdog receiver 3
send Hello World
Watchdog receiver 4
Received string message: Hello, World!
Watchdog receiver 5
Watchdog receiver 6
Watchdog receiver 7
send int 1
Watchdog receiver 8
Received double: 1
Watchdog receiver 9
Watchdog receiver 10
Watchdog receiver 11
send double 1.2
Watchdog receiver 12
Watchdog receiver 13
Watchdog receiver 14
send int 2
Received int message: 2
Received double: 1.2
Watchdog receiver 15
Watchdog receiver 16
Watchdog receiver 17
send 3xint 1 2 3
Watchdog receiver 18
Watchdog receiver 19
Watchdog receiver 20
Watchdog receiver 21
send string Bye bye
Watchdog receiver 22
Received string message: Bye bye
Received iii: 1 2 3
Receive loop finished.
Receiver watchdog failure.
uncaught exception
core.exception.OutOfMemoryError@src/core/exception.d(696): Memory allocation failed

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fphobos/detail/PR-5641/1/pipeline

FYI @s-ludwig

shallow checkout for Pipeline from repo?

Currently does a fully checkout of the PR repo in order to get the Jenkinsfile, as each PR is a new job, they have a separate workspace each.
Would be nice to at least only do a shallow clone.

GCE workers sometimes die

Cannot contact runner-01-gce: java.io.IOException: remote file operation failed: /var/lib/jenkins/dlang_projects@5/BlackEdder/ggplotd at hudson.remoting.Channel@2ad430c7:JNLP4-connect connection from 30.0.195.35.bc.googleusercontent.com/35.195.0.30:58308: hudson.remoting.ChannelClosedException: Remote call on JNLP4-connect connection from 30.0.195.35.bc.googleusercontent.com/35.195.0.30:58308 failed. The channel is closing down or has closed down

script returned exit code -1

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-7661/3/pipeline

Don't follow the log by default

When looking at a build which is still running, Jenkins follows the log automatically.
It's quite tricky to jump up and un-expand the log tab of the still running component, s.t. one can browse the other components.

java.nio.channels.ClosedChannelException

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fphobos/detail/PR-6141/1/pipeline

Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from 16.251.189.35.bc.googleusercontent.com/35.189.251.16:53316
		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1693)
		at hudson.remoting.Request.call(Request.java:192)
		at hudson.remoting.Channel.call(Channel.java:907)
		at hudson.FilePath.act(FilePath.java:986)
		at hudson.FilePath.act(FilePath.java:975)
		at hudson.FilePath.archive(FilePath.java:457)
		at org.jenkinsci.plugins.workflow.flow.StashManager.stash(StashManager.java:107)
		at org.jenkinsci.plugins.workflow.support.steps.stash.StashStep$Execution.run(StashStep.java:113)
		at org.jenkinsci.plugins.workflow.support.steps.stash.StashStep$Execution.run(StashStep.java:101)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49)
		at hudson.security.ACL.impersonate(ACL.java:260)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)

shouldn't we try to restart such builds?

Jenkins doesn't spawn builds

Jenkins seems to be losing PR builds, e.g. it simply doesn't start the build and doesn't send any notification to GH.
This has happened about five times this week already. Closing and re-opening the PR solves the problem, but that's not an ideal solution, because

  • it requires manual work
  • only contributors with write access can do so
  • people need to know about it
  • it creates more noise on the PR

dlang/dmd#7752

Jenkins's fails to write files (locking problem?)

[rejectedsoftware/vibe.d] vibe-d:textfilter 0.8.3-alpha.1: building configuration "library"...
[rejectedsoftware/vibe.d] ../../core/vibe/core/log.d(565,21): Deprecation: Built-in hex string literals are deprecated, use `std.conv.hexString` instead.
[rejectedsoftware/vibe.d] vibe-d:inet 0.8.3-alpha.1: building configuration "library"...
[rejectedsoftware/vibe.d] ../../core/vibe/core/log.d(565,21): Deprecation: Built-in hex string literals are deprecated, use `std.conv.hexString` instead.
[rejectedsoftware/vibe.d] vibe-d:tls 0.8.3-alpha.1: building configuration "openssl"...
[rejectedsoftware/vibe.d] ../../core/vibe/core/log.d(565,21): Deprecation: Built-in hex string literals are deprecated, use `std.conv.hexString` instead.
[rejectedsoftware/vibe.d] vibe-d:http 0.8.3-alpha.1: building configuration "library"...
[rejectedsoftware/vibe.d] ../../core/vibe/core/log.d(565,21): Deprecation: Built-in hex string literals are deprecated, use `std.conv.hexString` instead.
[rejectedsoftware/vibe.d] immutable(ubyte)[]
[rejectedsoftware/vibe.d] ../../http/vibe/http/server.d(2026,56): Deprecation: variable vibe.http.server.HTTPServerOption.distribute is deprecated - Use runWorkerTaskDist or start threads separately. It will be removed in 0.9.
[rejectedsoftware/vibe.d] Error: Error writing file '../../http/.dub/build/library-debug-linux.posix-x86_64-dmd_2078-BD83D681FC3A568855FE06D6DCD0FFE1/libvibe-d_http.a'
[rejectedsoftware/vibe.d] dmd failed with exit code 1.

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdruntime/detail/PR-2061/1/pipeline

Use a custom context name

This is an enhancement request.

Apparently the default context is set to continuous-integration/jenkins/pr-merge which looks quite long and could something more expressive like dlang/projects

According to the docs their DSL can be used for this:

  wrappers {
        downstreamCommitStatus {
            context('CONTEXT NAME')
        }
  }

Don't try to checkout matching branches for case of reverts?

In case GitHub's revert functionality is used, GitHub will create a branch in the blessed repo with the revert commit in it. Since it's a separate branch, Jenkins will try to find matching branches with the same name in dmd/phobos/dub/utils repositories, and usually it will fail: https://ci.dlang.io/job/dlang-org/job/druntime/job/revert-1879-soreusse/

Perhaps if the branch name starts with revert-* we should still use masters? I don't have high hopes that's configurable in Jenkins though, but who knows.

ggplotd hangs often

image

+ ./travis.sh
Generating test runner configuration 'ggplotd-test-default' for 'default' (library).
Performing "unittest" build using dmd for x86_64.
derelict-util 2.1.0: building configuration "library"...
derelict-ft 1.0.2: building configuration "library"...
x11 1.0.19: building configuration "library"...
../../.dub/packages/x11-1.0.19/x11/source/x11/extensions/XI.d(3,8): Deprecation: Symbol `string` is not visible because it is privately imported
cairod 0.0.1-alpha.3+1.10.2: building configuration "static-custom-posix"...
dstats 1.0.5: building configuration "library"...
dunit 1.0.14: building configuration "library"...
painlesstraits 0.2.0: building configuration "library"...
ggplotd 1.1.4: building configuration "ggplotd-test-default"...
../../.dub/packages/color-0.0.5/color/std/experimental/normint.d(55,29): Deprecation: integral promotion not done for `-cast(ubyte)255u`, use '-transition=intpromote' switch or `-cast(int)(cast(ubyte)255u)`
../../.dub/packages/color-0.0.5/color/std/experimental/normint.d(55,29): Deprecation: integral promotion not done for `-cast(byte)127`, use '-transition=intpromote' switch or `-cast(int)(cast(byte)127)`
source/ggplotd/guide.d(439,12): Deprecation: module ggplotd.colour member `RGBA` is not accessible
source/ggplotd/geom.d(50,12): Deprecation: module ggplotd.guide member `GuideStore` is not accessible
source/ggplotd/ggplotd.d(520,12): Deprecation: module ggplotd.legend member `Legend` is not accessible

It usually times out after one hour or so, i.e. when Google terminate the GCE runners.

Seen here: https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-6676/11/pipeline (but on many other PRs too)

java.io.IOException: Failed to extract dlang-build.tar.gz - Text file busy

remote file operation failed: /var/lib/jenkins/dlang_projects@6 at hudson.remoting.Channel@f787666:JNLP4-connect connection from 201.62.205.35.bc.googleusercontent.com/35.205.62.201:45376: java.io.IOException: Failed to extract dlang-build.tar.gz

Seen here:

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-7831/1/pipeline

Full exception:

java.nio.file.FileSystemException: /var/lib/jenkins/dlang_projects@6/distribution/bin/dmd: Text file busy
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
	at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
	at java.nio.file.Files.newOutputStream(Files.java:216)
	at hudson.util.IOUtils.copy(IOUtils.java:39)
	at hudson.FilePath.readFromTar(FilePath.java:2307)
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from 201.62.205.35.bc.googleusercontent.com/35.205.62.201:45376
		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1693)
		at hudson.remoting.UserResponse.retrieve(UserRequest.java:310)
		at hudson.remoting.Channel.call(Channel.java:908)
		at hudson.FilePath.act(FilePath.java:986)
		at hudson.FilePath.act(FilePath.java:975)
		at hudson.FilePath.untar(FilePath.java:528)
		at org.jenkinsci.plugins.workflow.flow.StashManager.unstash(StashManager.java:129)
		at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:74)
		at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:61)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49)
		at hudson.security.ACL.impersonate(ACL.java:260)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Caused: java.io.IOException: Failed to extract dlang-build.tar.gz
	at hudson.FilePath.readFromTar(FilePath.java:2317)
	at hudson.FilePath.access$400(FilePath.java:196)
	at hudson.FilePath$4.invoke(FilePath.java:530)
	at hudson.FilePath$4.invoke(FilePath.java:528)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2760)
	at hudson.remoting.UserRequest.perform(UserRequest.java:207)
	at hudson.remoting.UserRequest.perform(UserRequest.java:53)
	at hudson.remoting.Request$2.run(Request.java:358)
	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at hudson.remoting.Engine$1$1.run(Engine.java:98)
Caused: java.io.IOException: remote file operation failed: /var/lib/jenkins/dlang_projects@6 at hudson.remoting.Channel@f787666:JNLP4-connect connection from 201.62.205.35.bc.googleusercontent.com/35.205.62.201:45376
	at hudson.FilePath.act(FilePath.java:993)
	at hudson.FilePath.act(FilePath.java:975)
	at hudson.FilePath.untar(FilePath.java:528)

Is this due to unstash name: 'dlang-build' happening in parallel?

dub - feat663-search.sh

[INFO] Running /var/lib/jenkins/dlang_projects@6/dlang/dub/test/feat663-search.sh...
[ERROR] /var/lib/jenkins/dlang_projects@6/dlang/dub/test/feat663-search.sh:11 `dub search dub` failed
        Using dub registry url 'https://code.dlang.org/'
        Refreshing local packages (refresh existing: true)...
        Looking for local package map at /var/lib/dub/packages/local-packages.json
        Looking for local package map at /var/lib/jenkins/dlang_projects@6/.dub/packages/local-packages.json
        Try to load local package map at /var/lib/jenkins/dlang_projects@6/.dub/packages/local-packages.json
        Determined package version using GIT: dub 1.7.0
        ==== registry at https://code.dlang.org/ (fallback ["registry at http://code.dlang.org/", "registry at https://code-mirror.dlang.io/", "registry at https://code-mirror2.dlang.io/", "registry at https://dub-registry.herokuapp.com/"]) ====
        dub (1.7.1-beta.1)              Package manager for D packages
        gitcompatibledubpackage (1.0.4) Example of a DUB package also usable as git submodule. For DUB test suite.
        arsd-official (1.2.2)           A container of various subpackages that do lots of different things. You should use one of the subpackages instead of the main package in most cases, but you can try the complete package if you get duplicated dependency issues.
        dub-registry (2.2.0)            Online registry for dub packages
        dfl2 (1.0.7)                    dfl2 is a GUI library for Windows,now it can be built by dco, DUB or Visual Studio .NET(such as VS 2010).
        dco (0.1.2)                     dco is a build tool, it can be built by DUB and Visual Studio .NET(such as VS 2010).
        hmod-dub (0.1.1)                Generates DDoc documentation for any package in the DUB registry
        dwtlib (3.1.1)                  The dub package for dwt
        dubimport (1.1.3)               A command line tool to extract import paths on dub project.
        rdub (3.0.1)                    RDUB is a front end for DUB, a D language build tool.
        dubbio (0.5.0)                  Dub wrapper
        dub-data-mod (0.9.23-mod.1)     Temporary fork of dub that includes 'dub describe --data=' feature (until it's merged and released in mainline dub).
        gdub (1.1.0)                    GDUB is a DWT GUI front end for DUB, a D language build tool
[ERROR] Script failure.

https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fphobos/detail/PR-6036/1/pipeline

Build important projects with -de

When a deprecation is triggered, it should be ensured that all important repositories don't use the deprecated feature anymore. In other words, it should be the job of the person introducing the deprecation to ensure that (1) the ecosystem is ready for it and (2) suitable replacements exists.

Some projects are less active than others, so we might only want to do this for projects to which we have merge access, i.e. projects at dlang-community

Extend Cookie expiration period

The cookies are currently only saved for the current session:

image

Any chance we could set the expiration to sth. more convenient like 30 days?

dub: fetchzip tests fails sometimes

Sometimes the new fetchzip test fails:

Linking...
[main(----) INF] Listening for requests on http://[::]:18791/
Failed to listen on 0.0.0.0:18791
Trying to download gitcompatibledubpackage (1.0.4)
Fetching gitcompatibledubpackage 1.0.4...
[ERROR] :17 command failed
[main(----) INF] Received signal 15. Shutting down.
[ERROR] Script failure.

From: https://ci.dlang.io/blue/organizations/jenkins/dlang-org%2Fdmd/detail/PR-7777/11/pipeline

https://github.com/dlang/dub/blob/master/test/fetchzip.sh

Line 17 is:

timeout 1s "$DUB" fetch gitcompatibledubpackage --version=1.0.4 --skip-registry=all --registry=http://localhost:$PORT

Only build on PRs and don't build on commits to stable or master

  • we don't display the status of Jenkins anywhere
  • no one would notice that master broke - except it appears at a PR
  • the PR already gets merged with its target branch
  • it's a waste of resources
  • we already do the same for AppVeyor and SemaphoreCI at dlang/dmd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.