Note about upgrading CDS
Please install version 0.53.0 before installing this new release.
When you are upgrading CDS:
- backup your database before any operation
Notable Changes in version 0.54.1
In the full changelog, you will find a lot of commits about "workflow v2
" / "ui
" / "hook
" / "ascode
". All this work is here to prepare the new CDS "As Code". You will alredy find some documentation about new features, but we will make a full presentation of the new engine when it will be ready for production use.
As part of this new engine, we had to refactor the way that CDS commmunicates with the VCS Servers (bitbucket, github, etc...). This refactoring makes it easier to manage authorization based on Personal Access Tokens, instead of using oauth2 as before.
In the latest version 0.53.0, this was already refactored: you could manage VCS Server with the old and new way. With the version 0.54.1, you can only manage your VCS server one way.
If you migrate from a version 0.53, you have two solutions:
- solution A: migrate on the new VCS system before installing the 0.54.1 version
- solution B: install the version 0.54.1 and use the new VCS system. The VCS communication will be unavailable until you set the vcs server in each cds project.
Solution A
The cdsctl binary contains all commands to manage VCS Server on your CDS projects.
cdsctl experimental project YOUR_CDS_PROJECT_KEY
, replace YOUR_CDS_PROJECT_KEY
with the KEY of your CDS Project.
Github
Generate a new token on https://github.com/settings/tokens with the following scopes:
- repo:status
- public_repo
Create a yml file, example of vcs-github.yml
file:
version: v1.0
name: github
type: github
description: "my github"
auth:
username: your-username
token: ghp_your-token-here
options:
urlApi: "" # optional, default is https://api.github.com
disableStatus: false # Set to true if you don't want CDS to push statuses on the VCS server - optional
disableStatusDetails: false # Set to true if you don't want CDS to push CDS URL in statuses on the VCS server - optional
disablePolling: false # Does polling is supported by VCS Server - optional
disableWebHooks: false # Does webhooks are supported by VCS Server - optional
Then import the configuration:
cdsctl project vcs import YOUR_CDS_PROJECT_KEY vcs-github.yml
Bitbucket Datacenter
Example with vcs-bitbucket.yml
file:
version: v1.0
name: bitbucket
type: bitbucketserver
description: "My Bitbucket Datacenter"
url: "http://localhost:7990/bitbucket"
auth:
user: username-on-bitbucket
token: the-long-token-here
options:
disableStatus: false # Set to true if you don't want CDS to push statuses on the VCS server - optional
disableStatusDetails: false # Set to true if you don't want CDS to push CDS URL in statuses on the VCS server - optional
disablePolling: false # Does polling is supported by VCS Server - optional
disableWebHooks: false # Does webhooks are supported by VCS Server - optional
Then import:
cdsctl project vcs import YOUR_CDS_PROJECT_KEY vcs-bitbucket.yml
Solution B
It's the same as solution A, but your will find the useful commands with cdsctl project vcs
(instead of cdsctl experimental project vcs
)
The version 0.54.1 allows you to use the webui to configure the VCS project.
What's Changed
Features
- api, repositories, hooks: compute semver for workflow run git context by @fsamin in #6769
- api, ui: remove vulnerabilities from CDS by @sguiheux in #6602
- api: cancel abandonned run results by @fsamin in #6854
- api: createdHour in event by @yesnault in #6710
- api: valid email addresses for GPG keys by @fsamin in #6687
- api: worker model docker image whitelist by @fsamin in #6841
- contrib: docker-push plugin by @fsamin in #6813
- contrib: fix preview in vscode / project management by @rclsilver in #6878
- contrib: helm push plugin by @fsamin in #6826
- contrib: manage artifactory promote/release cargo crate by @sguiheux in #6611
- contrib: plugin rt create rb without target by @richardlt in #6730
- doc,vcs: new vcs documentation, cdsctl project vcs cmd by @yesnault in #6773
- engine: admin can delete public integration by @yesnault in #6630
- engine: websocket - rand.New only once by @yesnault in #6729
- hatchery: killAwolWorkerInterval as conf option by @yesnault in #6662
- hatchery: new metrics by @yesnault in #6725
- hatchery/openstack: list worker IP by @fsamin in #6702
- hatchery/openstack: log openstack server info by @fsamin in #6718
- hatchery/vsphere: monitoring vsphere client by @yesnault in #6652
- hooks: trigger on pull-request by @yesnault in #6819
- hooks: trigger on pull-request by @yesnault in #6825
- integration:artifactory: increase upload timeout by @richardlt in #6660
- sdk: allow to stop goroutine by @richardlt in #6754
- ui: add ability to shift click log expand to expand all by @maximecaruchet in #6629
- ui: upgrade to angular 14 by @sguiheux in #6688
- ui: upgrade to angular 15 by @sguiheux in #6691
- ui: upgrade to angular 16 by @sguiheux in #6694
- sdk/interpolate) Add new math interpolations by @bcecchinato in #6716
Bug Fixes
- api, cdn: set timeout for swift client by @richardlt in #6614
- api: avoid double book by the same hatchery by @yesnault in #6720
- api: CGO_ENABLED, strip plugin binaries by @fsamin in #6893
- api: debug constraint fk_worker_workflow_node_run_job by @fsamin in #6678
- api: do not try to send event if integration model does not support that by @yesnault in #6731
- api: don't restart stopped jobs by @fsamin in #6692
- api: favorites in projects list by @rclsilver in #6847
- api: fill favorite project attribute by @rclsilver in #6873
- api: FindOldestWorkflowRunsWithResultToSync by @fsamin in #6638
- api: keep the empty value for git clone tag parameter by @fsamin in #6649
- api: project key / wf name into events by @yesnault in #6723
- api: run result sync goroutine empties promotion data by @fsamin in #6632
- api: skip booked jobs in queue by @fsamin in #6711
- api: try to fix lock between workers and jobs by @fsamin in #6689
- cdsctl: makefile by @fsamin in #6894
- cdsctl: set CGO_ENABLED=0 for nokeychain variant by @fsamin in #6891
- cdsctl: workflow init by @yesnault in #6728
- cdsctl: workflow init detect vcs server by @yesnault in #6810
- contrib/helm-push: type docker and chart path default value by @fsamin in #6861
- deps: upgrade gorepo by @sguiheux in #6800
- docs: LICENSES by @yesnault in #6623
- docs: README by @yesnault in #6768
- engine: context cancel in postTakeWorkflowJob / initWorkflowRun by @yesnault in #6637
- engine: context cancel in postWorkflowJobResultHandler by @yesnault in #6633
- engine: do not force register on update binary by @yesnault in #6634
- engine: dropped cdn test error by @alrs in #6749
- engine: fix some logs by @yesnault in #6677
- engine: logs for compute purge by @yesnault in #6648
- engine: pk uuid by @yesnault in #6801
- engine: resync vcs status v1 by @yesnault in #6843
- hatcheries: do not restart job on dead workers by @yesnault in #6733
- hatchery: check creation timestamp by @yesnault in #6657
- hatchery: do not add same job into workersStarter by @yesnault in #6722
- hatchery: service name in metrics by @yesnault in #6724
- hatchery: worker starter cache clean by @yesnault in #6727
- hatchery/kubernetes: delete secret by @yesnault in #6653
- hatchery/kubernetes: more logs if no spawn by @yesnault in #6659
- hatchery/kubernetes: no need to delete secret by @yesnault in #6658
- hatchery/kubernetes: remove secret by worker name by @yesnault in #6661
- jsonschema: fix job validation by @rclsilver in #6874
- refactor(hatchery:openstack): servers and images cache by @richardlt in #6619
- refactor: cancel dequeue events by @richardlt in #6753
- refactor: drop old vcs tables by @yesnault in #6804
- refactor: remove old vcs servers by @yesnault in #6795
- repositories: timeout on some repos by @yesnault in #6618
- ui: base href by @sguiheux in #6695
- ui: default repository filter by @yesnault in #6921
- ui: edit pipeline context by @sguiheux in #6636
- ui: potential null error by @yesnault in #6713
- ui: refresh codemirror by @sguiheux in #6701
- ui: rm markdown interpreation on user inputs by @yesnault in #6855
- ui: tabs component navigation by @richardlt in #6903
- ui: template apply form by @richardlt in #6750
- ui: template apply form params by @richardlt in #6766
- ui: template apply form with repo param by @richardlt in #6770
- ui: websocket baseHref by @sguiheux in #6699
- vcs: old and new vcs gerrit compatibility by @yesnault in #6772
- worker: init env var for worker hooks by @yesnault in #6895
- worker: uploadArtifact error message by @fsamin in #6705
- worker: use doc command in CI mode by @fsamin in #6683
- Rebase external contributions by @richardlt in #6917
Full Changelog: v0.53.0...v0.54.1