CHANGELOG.md 17.9 KB
Newer Older
Kamil Trzciński's avatar
Kamil Trzciński committed
1
v 1.6.0 (unreleased)
Tomasz Maczukin's avatar
Tomasz Maczukin committed
2
- Add `pre_clone_script` and `pre_build_script` options to runner configuration !106
Nick Thomas's avatar
Nick Thomas committed
3
- Update YAML parser library !307
4
- Add parameter `volumes_from` for docker containers created by runners !236
Tomasz Maczukin's avatar
Tomasz Maczukin committed
5
- Add RC tags support in CI configuration !312
6
- Fix range mismatch handling error while patch tracing !319
Kamil Trzciński's avatar
Kamil Trzciński committed
7

8 9 10 11 12 13 14 15 16
v 1.5.3
- Fix Caret-escape parentheses when not inside double quotes for Windows cmd
- Remove LFS from prebuilt images

v 1.5.2
(no changes)

v 1.5.1
- Fix file mode of gitlab-runner-service script !283
Kamil Trzciński's avatar
Kamil Trzciński committed
17

Kamil Trzciński's avatar
Kamil Trzciński committed
18 19 20
v 1.5.0
- Update vendored toml !258
- Release armel instead arm for Debian packages !264
21
- Improve concurrency of docker+machine executor !254
Kamil Trzciński's avatar
Kamil Trzciński committed
22 23 24 25 26 27 28 29 30 31
- Use .xz for prebuilt docker images to reduce binary size and provisioning speed of Docker Engines !249
- Remove vendored test files !271
- Update gitlab-runner-service to return 1 when no Host or PORT is defined !253
- Log caching URL address
- Retry executor preparation to reduce system failures !244
- Fix missing entrypoint script in alpine Dockerfile !248
- Suppress all but the first warning of a given type when extracting a ZIP file !261
- Mount /builds folder to all services when used with Docker Executor !272
- Cache docker client instances to avoid a file descriptor leak !260
- Support bind mount of `/builds` folder !193
Tomasz Maczukin's avatar
Tomasz Maczukin committed
32

33 34 35 36
v 1.4.3
- Fix Caret-escape parentheses when not inside double quotes for Windows cmd
- Remove LFS from prebuilt images

37 38 39
v 1.4.2
- Fix abort mechanism when patching trace

40 41 42
v 1.4.1
- Fix panic while artifacts handling errors

Tomasz Maczukin's avatar
Tomasz Maczukin committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
v 1.4.0
- Add sentry support
- Add support for cloning VirtualBox VM snapshots as linked clones
- Add support for `security_opt` docker configuration parameter in docker executor
- Add first integration tests for executors
- Add many logging improvements (add more details to some logs, move some logs to Debug level, refactorize logger etc.)
- Make final build trace upload be done before cleanup
- Extend support for caching and artifacts to all executors
- Improve support for Docker Machine
- Improve build aborting
- Refactor common/version
- Use `environment` feature in `.gitlab-ci.yml` to track latest versions for Bleeding Edge and Stable
- Fix Absolute method for absolute path discovering for bash
- Fix zombie issues by using dumb-init instead of github.com/ramr/go-reaper

58 59 60
v 1.3.5
- Fix Caret-escape parentheses when not inside double quotes for Windows cmd

61 62 63
v 1.3.4
- Fix panic while artifacts handling errors

64 65 66
v 1.3.3
- Fix zombie issue by using dumb-init

67 68 69
v 1.3.2
- Fix architecture detection bug introduced in 1.3.1

Kamil Trzciński's avatar
Kamil Trzciński committed
70 71 72
v 1.3.1
- Detect architecture if not given by Docker Engine (versions before 1.9.0)

Tomasz Maczukin's avatar
Tomasz Maczukin committed
73
v 1.3.0
Tomasz Maczukin's avatar
Tomasz Maczukin committed
74
- Add incremental build trace update
Tomasz Maczukin's avatar
Tomasz Maczukin committed
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
- Add posibility to specify CpusetCpus, Dns and DnsSearch for docker containers created by runners
- Add a custom `User-Agent` header with version number and runtime information (go version, platform, os)
- Add artifacts expiration handling
- Add artifacts handling for failed builds
- Add customizable `check_interval` to set how often to check GitLab for a new builds
- Add docker Machine IP address logging
- Make Docker Executor ARM compatible
- Refactor script generation to make it fully on-demand
- Refactor runnsers Acquire method to improve performance
- Fix branch name setting at compile time
- Fix panic when generating log message if provision of node fails
- Fix docker host logging
- Prevent leaking of goroutines when aborting builds
- Restore valid version info in --help message
- [Experimental] Add `GIT_STRATEGY` handling - clone/fetch strategy configurable per job
- [Experimental] Add `GIT_DEPTH` handling - `--depth` parameter for `git fetch` and `git clone`
Tomasz Maczukin's avatar
Tomasz Maczukin committed
91 92

v 1.2.0
93
- Use Go 1.6
94
- Add `timeout` option for the `exec` command
Elan Ruusamäe's avatar
Elan Ruusamäe committed
95
- Add runtime platform information to debug log
96 97 98
- Add `docker-machine` binary to Runner's official docker images
- Add `build_current` target to Makefile - to build only a binary for used architecture
- Add support for `after_script`
Tomasz Maczukin's avatar
Tomasz Maczukin committed
99
- Extend version information when using `--version` flag
100 101 102 103 104 105
- Extend artifacts download/upload logs with more response data
- Extend unregister command to accept runner name
- Update shell detection mechanism
- Update the github.com/ayufan/golag-kardianos-service dependency
- Replace ANSI_BOLD_YELLOW with ANSI_YELLOW color for logging
- Reconcile VirtualBox status constants with VBoxManage output values
Tomasz Maczukin's avatar
Tomasz Maczukin committed
106
- Make checkout quiet
107
- Make variables to work at job level in exec mode
108 109
- Remove "user mode" warning when running in a system mode
- Create `gitlab-runner` user as a system account
Elan Ruusamäe's avatar
Elan Ruusamäe committed
110
- Properly create `/etc/gitlab-runner/certs` in Runner's official docker images
111 112 113 114 115 116 117
- Disable recursive submodule fetchin on fetching changes
- Fix nil casting issue on docker client creation
- Fix used build platforms for `gox`
- Fix a limit problems when trying to remove a non-existing machines
- Fix S3 caching issues
- Fix logging messages on artifacts dowloading
- Fix binary panic while using VirtualBox executor with no `vboxmanage` binary available
118

119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
v 1.1.4
- Create /etc/gitlab-runner/certs
- Exclude architectures from GOX, rather then including
- Update mimio-go to a newest version
- Regression: Implement CancelRequest to fix S3 caching support
- Fix: Skip removal of machine that doesn't exist (autoscaling)

v 1.1.3
- Regression: On Linux use `sh -s /bin/bash user -c` instead of `sh user -c`. This fixes non-login for user.
- Regression: Fix user mode warning
- Fix: vet installation
- Fix: nil casting issue on docker client creation
- Fix: docker client download issue

v 1.1.2
- Regression: revert shell detection mechanism and limit it only to Docker

v 1.1.1
- Fix: use different shell detection mechanism
- Regression: support for `gitlab-runner exec`
- Regression: support for login/non-login shell for Bash

Kamil Trzciński's avatar
Kamil Trzciński committed
141 142 143 144 145 146 147 148 149 150 151 152
v 1.1.0
- Use Go 1.5
- Change license to MIT
- Add docker-machine based auto-scaling for docker executor
- Add support for external cache server
- Add support for `sh`, allowing to run builds on images without the `bash`
- Add support for passing the artifacts between stages
- Add `docker-pull-policy`, it removes the `docker-image-ttl`
- Add `docker-network-mode`
- Add `git` to gitlab-runner:alpine
- Add support for `CapAdd`, `CapDrop` and `Devices` by docker executor
- Add support for passing the name of artifacts archive (`artifacts:name`)
153
- Add support for running runner as system service on OSX
Kamil Trzciński's avatar
Kamil Trzciński committed
154 155 156 157 158 159 160 161
- Refactor: The build trace is now implemented by `network` module
- Refactor: Remove CGO dependency on Windows
- Fix: Create alternative aliases for docker services (uses `-`)
- Fix: VirtualBox port race condition
- Fix: Create cache for all builds, including tags
- Fix: Make the shell executor more verbose when the process cannot be started
- Fix: Pass gitlab-ci.yml variables to build container created by docker executor
- Fix: Don't restore cache if not defined in gitlab-ci.yml
162 163
- Fix: Always use `json-file` when starting docker containers
- Fix: Error level checking for Windows Batch and PowerShell
164

Kamil Trzciński's avatar
Kamil Trzciński committed
165 166 167
v 1.0.4
- Fix support for Windows PowerShell

Kamil Trzciński's avatar
Kamil Trzciński committed
168 169 170
v 1.0.3
- Fix support for Windows Batch
- Remove git index lock file: this solves problem with git checkout being terminated
Kamil Trzciński's avatar
Kamil Trzciński committed
171
- Hijack docker.Client to use keep-alives and to close extra connections
Kamil Trzciński's avatar
Kamil Trzciński committed
172

Kamil Trzciński's avatar
Kamil Trzciński committed
173 174 175 176 177 178
v 1.0.2
- Fix bad warning about not found untracked files
- Don't print error about existing file when restoring the cache
- When creating ZIP archive always use forward-slashes and don't permit encoding absolute paths
- Prefer to use `path` instead of `filepath` which is platform specific: solves the docker executor on Windows

179 180 181 182 183
v 1.0.1
- Use nice log formatting for command line tools
- Don't ask for services during registration (we prefer the .gitlab-ci.yml)
- Create all directories when extracting the file

Kamil Trzciński's avatar
Kamil Trzciński committed
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
v 1.0.0
- Add `gitlab-runner exec` command to easy running builds
- Add `gitlab-runner status` command to easy check the status of the service
- Add `gitlab-runner list` command to list all runners from config file
- Allow to specify `ImageTTL` for configuration the frequency of docker image re-pulling (see advanced-configuration)
- Inject TLS certificate chain for `git clone` in build container, the gitlab-runner SSL certificates are used
- Remove TLSSkipVerify since this is unsafe option
- Add go-reaper to make gitlab-runner to act as init 1 process fixing zombie issue when running docker container
- Create and send artifacts as zip files
- Add internal commands for creating and extracting archives without the system dependencies
- Add internal command for uploading artifacts without the system dependencies
- Use umask in docker build containers to fix running jobs as specific user
- Fix problem with `cache` paths never being archived
- Add support for [`cache:key`](http://doc.gitlab.com/ce/ci/yaml/README.html#cachekey)
- Add warnings about using runner in `user-mode`
- Push packages to all upcoming distributions (Debian/Ubuntu/Fedora)
- Rewrite the shell support adding all features to all shells (makes possible to use artifacts and caching on Windows)
- Complain about missing caching and artifacts on some executors
- Added VirtualBox executor
- Embed prebuilt docker build images in runner binary and load them if needed
- Make possible to cache absolute paths (unsafe on shell executor)

206
v 0.7.2
Daniel Widerin's avatar
Daniel Widerin committed
207
- Adjust `umask` for build image
208
- Use absolute path when executing archive command
209
- Fix regression when variables were not passed to service container
210
- Fix duplicate files in cache or artifacts archive
211

Kamil Trzciński's avatar
Kamil Trzciński committed
212 213 214 215
v 0.7.1
- Fix caching support
- Suppress tar verbose output

Kamil Trzciński's avatar
Kamil Trzciński committed
216
v 0.7.0
Kamil Trzciński's avatar
Kamil Trzciński committed
217 218
- Refactor code structure
- Refactor bash script adding pre-build and post-build steps
Kamil Trzciński's avatar
Kamil Trzciński committed
219
- Add support for build artifacts
220
- Add support for caching build directories
Kamil Trzciński's avatar
Kamil Trzciński committed
221
- Add command to generate archive with cached folders or artifacts
Kamil Trzciński's avatar
Kamil Trzciński committed
222
- Use separate containers to run pre-build (git cloning), build (user scripts) and post-build (uploading artifacts)
Kamil Trzciński's avatar
Kamil Trzciński committed
223 224 225 226 227 228 229
- Expand variables, allowing to use $CI_BUILD_TAG in image names, or in other variables
- Make shell executor to use absolute path for project dir
- Be strict about code formatting
- Move network related code to separate package
- Automatically load TLS certificates stored in /etc/gitlab-runner/certs/<hostname>.crt
- Allow to specify tls-ca-file during registration
- Allow to disable tls verification during registration
Kamil Trzciński's avatar
Kamil Trzciński committed
230

231 232 233 234 235
v 0.6.2
- Fix PowerShell support
- Make more descriptive pulling message
- Add version check to Makefile

236 237 238
v 0.6.1
- Revert: Fix tags handling when using git fetch: fetch all tags and prune the old ones

Kamil Trzciński's avatar
Kamil Trzciński committed
239
v 0.6.0
240
- Fetch docker auth from ~/.docker/config.json or ~/.dockercfg
241
- Added support for NTFSSecurity PowerShell module to address problems with long paths on Windows
242
- Make the service startup more readable in case of failure: print a nice warning message
Kamil Trzciński's avatar
Kamil Trzciński committed
243
- Command line interface for register and run-single accepts all possible config parameters now
Kamil Trzciński's avatar
Kamil Trzciński committed
244
- Ask about tags and fix prompt to point to gitlab.com/ci
Kamil Trzciński's avatar
Kamil Trzciński committed
245
- Pin to specific Docker API version
246
- Fix docker volume removal issue
247
- Add :latest to imageName if missing
Kamil Trzciński's avatar
Kamil Trzciński committed
248 249 250 251 252 253
- Pull docker images every minute
- Added support for SIGQUIT to allow to gracefully finish runner: runner will not accept new jobs, will stop once all current jobs are finished.
- Implicitly allow images added as services
- Evaluate script command in subcontext, making it to close stdin (this change since 0.5.x where the separate file was created)
- Pass container labels to docker
- Force to use go:1.4 for building packages
254
- Fix tags handling when using git fetch: fetch all tags and prune the old ones
Kamil Trzciński's avatar
Kamil Trzciński committed
255 256 257 258 259 260 261 262
- Remove docker socket from gitlab/gitlab-runner images
- Pull (update) images and services every minute
- Ignore options from Coordinator that are null
- Provide FreeBSD binary
- Use -ldflags for versioning
- Update go packages
- Fix segfault on service checker container
- WARNING: By default allow to override image and services
263

Kamil Trzciński's avatar
Kamil Trzciński committed
264 265 266
v 0.5.5
- Fix cache_dir handling

Kamil Trzciński's avatar
Kamil Trzciński committed
267 268 269
v 0.5.4
- Update go-dockerclient to fix problems with creating docker containers

Kamil Trzciński's avatar
Kamil Trzciński committed
270 271 272 273
v 0.5.3
- Pin to specific Docker API version
- Fix docker volume removal issue

Kamil Trzciński's avatar
Kamil Trzciński committed
274 275 276 277
v 0.5.2
- Fixed CentOS6 service script
- Fixed documentation
- Added development documentation
Kamil Trzciński's avatar
Kamil Trzciński committed
278
- Log service messages always to syslog
Kamil Trzciński's avatar
Kamil Trzciński committed
279

280 281 282
v 0.5.1
- Update link for Docker configuration

Kamil Trzciński's avatar
Kamil Trzciński committed
283
v 0.5.0
284
- Allow to override image and services for Docker executor from Coordinator
Kamil Trzciński's avatar
Kamil Trzciński committed
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304
- Added support for additional options passed from coordinator
- Added support for receiving and defining allowed images and services from the Coordinator
- Rename gitlab_ci_multi_runner to gitlab-runner
- Don't require config file to exist in order to run runner
- Change where config file is stored: /etc/gitlab-runner/config.toml (*nix, root), ~/.gitlab-runner/config.toml (*nix, user)
- Create config on service install
- Require root to control service on Linux
- Require to specify user when installing service
- Run service as root, but impersonate as --user when executing shell scripts
- Migrate config.toml from user directory to /etc/gitlab-runner/
- Simplify service installation and upgrade
- Add --provides and --replaces to package builder
- Powershell: check exit code in writeCommandChecked
- Added installation tests
- Add runner alpine-based image
- Send executor features with RunnerInfo
- Verbose mode by using `echo` instead of `set -v`
- Colorize bash output
- Set environment variables from bash script: this fixes problem with su
- Don't cache Dockerfile VOLUMEs
305
- Pass (public) environment variables received from Coordinator to service containers
306

Kamil Trzciński's avatar
Kamil Trzciński committed
307 308 309 310 311
v 0.4.2
- Force GC cycle after processing build
- Use log-level set to info, but also make `Checking for builds: nothing` being print as debug
- Fix memory leak - don't track references to builds

Kamil Trzciński's avatar
Kamil Trzciński committed
312 313 314
v 0.4.1
- Fixed service reregistration for RedHat systems

Kamil Trzciński's avatar
Kamil Trzciński committed
315 316
v 0.4.0
- Added CI=true and GITLAB_CI=true to environment variables
317
- Added output_limit (in kilobytes) to runner config which allows to enlarge default build log size
318
- Added support for custom variables received from CI
319
- Added support for SSH identity file
320
- Optimize build path to make it shorter, more readable and allowing to fix shebang issue
Kamil Trzciński's avatar
Kamil Trzciński committed
321
- Make the debug log human readable
322
- Make default build log limit set to 4096 (4MB)
323
- Make default concurrent set to 1
324
- Make default limit for runner set to 1 during registration
Kamil Trzciński's avatar
Kamil Trzciński committed
325 326 327 328 329
- Updated kardianos service to fix OSX service installation
- Updated logrus to make console output readable on Windows
- Change default log level to warning
- Make selection of forward or back slashes dependent by shell not by system
- Prevent runner to be stealth if we reach the MaxTraceOutputSize
330
- Fixed Windows Batch script when builds are located on different drive
Kamil Trzciński's avatar
Kamil Trzciński committed
331 332 333
- Fixed Windows runner
- Fixed installation scripts path
- Fixed wrong architecture for i386 debian packages
334
- Fixed problem allowing commands to consume build script making the build to succeed even if not all commands were executed
Kamil Trzciński's avatar
Kamil Trzciński committed
335

336 337 338
v 0.3.4
- Create path before clone to fix Windows issue
- Added CI=true and GITLAB_CI=true
339
- Fixed wrong architecture for i386 debian packages
340 341 342 343

v 0.3.3
- Push package to ubuntu/vivid and ol/6 and ol/7

Kamil Trzciński's avatar
Kamil Trzciński committed
344 345 346
v 0.3.2
- Fixed Windows batch script generator

Kamil Trzciński's avatar
Kamil Trzciński committed
347 348 349 350
v 0.3.1
- Remove clean_environment (it was working only for shell scripts)
- Run bash with --login (fixes missing .profile environment)

351
v 0.3.0
352
- Added repo slug to build path
353
- Build path includes repository hostname
Kamil Trzciński's avatar
Kamil Trzciński committed
354
- Support TLS connection with Docker
355
- Default concurrent limit is set to number of CPUs
356
- Make most of the config options optional
357
- Rename setup/delete to register/unregister
358 359
- Checkout as detached HEAD (fixes compatibility with older git versions)
- Update documentation
Kamil Trzciński's avatar
Kamil Trzciński committed
360

Kamil Trzciński's avatar
Kamil Trzciński committed
361 362 363 364 365 366 367 368 369 370 371 372
v 0.2.0
- Added delete and verify commands
- Limit build trace size (1MB currently)
- Validate build log to contain only valid UTF-8 sequences
- Store build log in memory
- Integrate with ci.gitlab.com
- Make packages for ARM and CentOS 6 and provide beta version
- Store Docker cache in separate containers
- Support host-based volumes for Docker executor
- Don't send build trace if nothing changed
- Refactor build class

Kamil Trzciński's avatar
Kamil Trzciński committed
373 374 375
v 0.1.17
- Fixed high file descriptor usage that could lead to error: too many open files

376 377 378
v 0.1.16
- Fixed systemd service script

Kamil Trzciński's avatar
Kamil Trzciński committed
379 380 381
v 0.1.15
- Fix order of executor commands
- Fixed service creation options
382
- Fixed service installation on OSX
Kamil Trzciński's avatar
Kamil Trzciński committed
383

Kamil Trzciński's avatar
Kamil Trzciński committed
384 385 386 387
v 0.1.14
- Use custom kardianos/service with enhanced service scripts
- Remove all system specific packages and use universal for package manager

Kamil Trzciński's avatar
Kamil Trzciński committed
388 389 390
v 0.1.13
- Added abstraction over shells
- Moved all bash specific stuff to shells/bash.go
391 392 393
- Select default shell for OS (bash for Unix, batch for Windows)
- Added Windows Cmd support
- Added Windows PowerShell support
394
- Added the kardianos/service which allows to easily run gitlab-ci-multi-runner as service on different platforms
395 396
- Unregister Parallels VMs which are invalid
- Delete Parallels VM if it doesn't contain snapshots
Kamil Trzciński's avatar
Kamil Trzciński committed
397
- Fixed concurrency issue when assigning unique names
Kamil Trzciński's avatar
Kamil Trzciński committed
398

Kamil Trzciński's avatar
Kamil Trzciński committed
399 400 401 402 403 404 405
v 0.1.12
- Abort all jobs if interrupt or SIGTERM is received
- Runner now handles HUP and reloads config on-demand
- Refactored runner setup allowing to non-interactive configuration of all questioned parameters
- Added CI_PROJECT_DIR environment variable
- Make golint happy (in most cases)

Kamil Trzciński's avatar
Kamil Trzciński committed
406 407 408
v 0.1.11
- Package as .deb and .rpm and push it to packagecloud.io (for now)

409 410
v 0.1.10
- Wait for docker service to come up (Loïc Guitaut)
411
- Send build log as early as possible
412

Kamil Trzciński's avatar
Kamil Trzciński committed
413 414 415
v 0.1.9
- Fixed problem with resetting ruby environment

Kamil Trzciński's avatar
Kamil Trzciński committed
416 417 418 419 420 421 422
v 0.1.8
- Allow to use prefixed services
- Allow to run on Heroku
- Inherit environment variables by default for shell scripts
- Mute git messages during checkout
- Remove some unused internal messages from build log

Kamil Trzciński's avatar
Kamil Trzciński committed
423 424 425
v 0.1.7
- Fixed git checkout

426 427 428
v 0.1.6
- Remove Docker containers before starting job

429 430 431 432
v 0.1.5
- Added Parallels executor which can use snapshots for fast revert (only OSX supported)
- Refactored sources

433 434 435 436 437
v 0.1.4
- Remove Job and merge it into Build
- Introduce simple API server
- Ask for services during setup

Kamil Trzciński's avatar
Kamil Trzciński committed
438 439 440 441 442 443 444 445 446 447 448 449
v 0.1.3
- Optimize setup
- Optimize multi-runner setup - making it more concurrent
- Send description instead of hostname during registration
- Don't ask for tags

v 0.1.2
- Make it work on Windows

v 0.1.1
- Added Docker services

Kamil Trzciński's avatar
Kamil Trzciński committed
450 451
v 0.1.0
- Initial public release