The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Continua CI’ Category

Continuous Integration Server performance

Posted by jpluimers on 2019/04/09

From a while back, but still relevant for any continuous integration system: [WayBack] Continuous Integration Server performance.

–jeroen

via: [WayBackBlogged – Continous Integration Server Performance – Vincent Parrett – Google+

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

openssl: checking out RSA private key files in .rsa and .pem format

Posted by jpluimers on 2019/03/19

While checking out an issue with the SSH server for ContinuaCI issue (see info below), I wanted to look at the files leading to the issue: .pem and .rsa files with the private key for the SSH server.

So I browsed through my series of openssl related articles to see if I already had made a script better explaining the cryptic openssl command-line parameters. I didn’t have it yet, but it turned out to be really simple:

C:\ProgramData\VSoft\ContinuaCI\SSHD>"C:\Program Files (x86)\Git\usr\bin\openssl.exe" rsa -in server_keypair.rsa
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
C:\ProgramData\VSoft\ContinuaCI\SSHD>"C:\Program Files (x86)\Git\usr\bin\openssl.exe" rsa -in server_keypair.rsa -text
Private-Key: (1024 bit)
modulus:
    ..:..:..:.....
publicExponent: 35 (0x23)
privateExponent:
    ..:..:..:.....
prime1:
    ..:..:..:.....
prime2:
    ..:..:..:.....
exponent1:
    ..:..:..:.....
exponent2:
    ..:..:..:.....
coefficient:
    ..:..:..:.....
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
C:\ProgramData\VSoft\ContinuaCI\SSHD>"C:\Program Files (x86)\Git\usr\bin\openssl.exe" rsa -in server_keypair.pem
Enter pass phrase for server_keypair.pem:
unable to load Private Key
2675996:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:529:
2675996:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:108:
2675996:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:139:
2675996:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:141:
C:\ProgramData\VSoft\ContinuaCI\SSHD>"C:\Program Files (x86)\Git\usr\bin\openssl.exe" rsa -in server_keypair.pem -passin pass:password
unable to load Private Key
2675996:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:529:
2675996:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:108:
2675996:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:139:
2675996:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:141:

The command-lines use the [WayBack]rsa tool with:

  • the -in parameter
  • (for the first file) the -text parameter to dump it into human readable form
  • (for the second file) the -passin parameter with a [WayBackpass phrase argument pass:password.

The server_keypair.pem file (having the header -----BEGIN ENCRYPTED PRIVATE KEY----- and footer -----END ENCRYPTED PRIVATE KEY-----) was a password protected RSA private key where somehow ContinuaCI had the wrong password for.

I’m not sure it’s a good idea that the server_keypair.pem file has not password at all.

Read the rest of this entry »

Posted in Continua CI, Continuous Integration, Development, OpenSSL, Power User, Security, Software Development | Leave a Comment »

If you like Oz: VSoft is hiring – .NET/Full Stack Developer, local or remote

Posted by jpluimers on 2018/03/07

VSoft in Oz (of Coninua CI and FinalBuilder fame) is hiring: [WayBack] We’re hiring – .NET/Full Stack Developer, local or remote – Vincent Parrett – Google+.

The job is on LinkedIn, but that site does not like to be archived in the WayBack Machine or Archive.is, so here it is:

Job description

We are looking for a talented .NET/Full Stack developer to help our team ramp up product development.

This isn’t a ‘run of the mill’ data entry project, there are significant technical challenges, so we are looking for a developer at the top of their game. You will need a keen interest in DevOps.

For this role it is essential that you have the following skills and a minimum of 2 years development experience.

Required skills

  • Excellent C# (VS2017).
  • Excellent HTML, CSS and JavaScript/TypeScript.
  • ASP.NET MVC.
  • SQL/Database (any).
  • Version Control (any).

Bonus skills/experience

  • .NET Core
  • React
  • Webpack.
  • Nancy.
  • NHibernate.
  • REST API design.
  • DevOps

About You

You will be a software developer with a strong attention to detail. You should enjoy a challenge, and be able to hit the ground running and be producing code in the first few days. You will be comfortable working as part of a team, or alone with minimal supervision and have excellent spoken and written English.About UsWe’re passionate about software development, in particular, CI/CD/DevOps. We are small team of experienced, smart developers who are very focused on customer satisfaction.All our developers have fast machines, multiple monitors, Herman Miller chairs, electric sit/stand desks, free tee/coffee, parking etc. Our office is in the Phillip business district in Canberra. Remote work is possible for the right candidate.SalarySalary is negotiable (commensurate with experience) – let us know your expectations when applying.

The position is full time, preferably on site at our office in Phillip, Canberra, close to Woden Plaza and public transport, with a great cafe downstairs!

Application Process

We are looking for someone to start asap, so we won’t drag this out. Send us your resume (pdf only). If you have any pet open source projects (or contribute to open source projects), tell us about your involvement (include links!). If you have a github or bitbucket account, let us know your handle (saves us searching for it ourselves!).If you are selected for interview, be prepared to write some code (a small demo project < 30 minutes). If you have something you are working on that you can show and tell, by all means bring your laptop! We will expect that you are at least familiar with our products (Continua CI).

NOTE: You must have the right to live and work in Australia (unless working remotely, outside of Australia).

–jeroen

 

Posted in .NET, Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

Version 1.8.1 History – builds 121-185 – Continua CI

Posted by jpluimers on 2016/12/07

I’ve been very busy with broken hardware and operating systems lately so today was the first chance to post about recent Version 1.8.1 History of  Continua CI. During October and November the below builds got released.

For almost all of them, you will need to update your agents after installing the build.

v1.8.1.185, November 23rd, 2016

Changes

  • Update: Added preliminary support for Visual Studio 2017 RC to MSBuild, VSTest, MSTest and Visual Studio actions
  • Fix: Issue where ExecuteRepositoryServerSideScripts app setting was not being read preventing running of Git post commit scripts.

v1.8.1.178, November 22nd, 2016

Changes

  • Fix: “changeset.style” file was missing from installer causing error when getting new changesets for new Mercurial repositories.
  • Fix: Issue where Shared Resource Locks at the configuration level would be released before the end of the build, if Shared Resource Locks existed at the stage level and were released.
  • Fix: Build version is now truncated to fit into the maximum field length of 128 characters.
  • Update: Email publisher now supports wider range of secure sockets options. This also fixes an issue where you it would always try to use TLS if it was supported by the server.

v1.8.1.167, November 15th, 2016

Changes

  • Fix: Issue where enabling a configuration would cause all time triggers in other configurations to stop working.
  • Update: Any updates to loggers in the Continua CI Server service configuration file, such as enabling debug logging, are no longer reset when running the installer.

v1.8.1.165, November 14th, 2016

Changes

  • Fix: Repository error status was being reset to “Ready” status when getting new changesets.
  • Fix: Associated triggers are now updated to point to the new repository when repository edit requires it to be recreated.
  • Fix: Concurrency issue with build event handlers causing incorrect build data to be used.
  • Update: Bundled Mercurial used for repository cache has been upgraded to version 3.9.2
  • Update: Improvements to speed when exporting files from agent repository cache to agent workspace.
  • Update: Agent installer has been updated to allow it to be run silently and take additional command line parameters. The relevant parameters are:
    • /usage (optional) – shows usage information.
    • /silent (optional) – runs the setup in silent mode. Note that progress bars will still be displayed.
    • /verysilent (optional) – runs the setup in completely silent mode. No UI is displayed.
    • /log=”filename” (optional) – creates a log file with the specified filename.
    • /dir=”x:\dirname” (optional) – overrides the default installation directory name.
    • /serviceUser (required in silent modes) – the domain and user name of the service user e.g. domain\username.
    • /servicePassword (required in silent modes) – the password of the service user.
    • /serverHostName (optional) – the host name of the ContinuaCI service. Defaults to “localhost” if not provided.
    • /serverPort (optional) – the port of the ContinuaCI service. Defaults to 9000 if not provided.
    • /agentPort (optional) – a port for the agent being installed. Defaults to 9002 if not provided.
    • /workspacePath (optional) – the local path to the agent workspace folder. Defaults to “C:\CI_AWS” if not provided.
  • Update: Now showing the finished time for the last finished build rather than Never for the last queued/running build on List View dashboard.
  • Update: JUnit parser now includes test case times.
  • Update: Diagnostics report is now generated in the background to prevent timeouts.
  • Update: Further improvements to build queue performance.

v1.8.1.121, October 11th, 2016

Changes

  • Fix: Regression bug in v1.8.1.118 where Path Exists property collector plugin would always return false.

–jeroen

Posted in Continua CI, Continuous Integration, Development, Power User, Software Development | Leave a Comment »

Continua CI v1.8.1.118 released

Posted by jpluimers on 2016/10/11

Source: Version 1.8.1 History | Continua CI – v1.8.1.118

v1.8.1.118

October 10th, 2016

Changes

  • Update: Reduced CPU usage on server when using a large number of time triggers.
  • Update: Reduced wait time between time triggers running simultaneously.
  • Update: Reduced CPU usage and throughput of stage queue.
  • Update: The >> operator is now implemented in repository rules. This is used to clean the destination folder before copying files. It is useful when a stage can run on the same agent as a previous stage as the agent workspace is not automatically cleared between stages.
    Note: We have also changed the default workspace and repository rules so that the >> operator is used for any server to agent rules in new stages. This is to ensure that the workspace is always cleared and are no surprises dependent on the agent the stage runs on. This can be changed to a single > to use the previous behaviour.
  • Update: Environment variables now expanded in all path type property collectors. This will for example allow you to use %HOME% to define the path to check when using a Path Access PlugIn property collector.
  • Update: Added descriptions and help information to property collector dialog fields.
  • Update: Queued stages are now prevented from starting in the few seconds after an agent has gone offline.
  • Fix: Issue where changes to user group membership were not picked up for several minutes unless the service was restarted.
  • Fix: Triggers were not being monitored after a disabled configuration was re-enabled.
  • Fix: Issue where agents with unlimited concurrent stages would not be selected to run stage.

–jeroen

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

Released: Continua CI v1.8.1.112

Posted by jpluimers on 2016/09/29

Version 1.8.1 History | Continua CI:

v1.8.1.112

September 29th, 2016

Changes

  • Fix: Regression bug: repository branch auto-mapping changes were missing a null check causing triggering builds to be stuck in initialising state.
  • Fix: Branch auto-mapping was not working with all scenarios.
  • Update: Property collector added for .Net Framework 4.6.2.

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

TODO: Check if Continua CI parsesl DUnit XML FinalBuilder emitted XML when using pure DUnit tests and TRepeatedTest ones

Posted by jpluimers on 2016/09/29

On my TODO list.

References:

This in order to get rid of MSXML dependencies in cross platform Delphi development.

–jeroen

Posted in Continua CI, Continuous Integration, Delphi, Development, DUnit, Software Development | 2 Comments »

New Continua CI version v1.8.1.108

Posted by jpluimers on 2016/09/29

via Version 1.8.1 History | Continua CI [WayBack]: new version v1.8.1.108

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

Continua CI Version 1.8 History – the new features

Posted by jpluimers on 2016/04/14

A new version 1.8 of Continua CI was released earlier this month.

The most interesting tid-bits are at the bottom of the version 1.8 history page, so I post them here as I’m lazy.

New Version 1.8 Features

Dashboard Filtering

We’ve added a new filter box to the dashboard so you can quickly find the configuration that you are looking for as you type.

Shared Resources

You can now limit the number of builds or stages which can access the same named shared resource concurrently. This can be useful if you wish to restrict the number of times a particular tool is run due to a license or memory limit, or to prevent concurrency issues with multiple build stages simultaneously writing to the same file, folder or network resource.

Shared resources can be associated with the server or an agent in the Administration pages. They can have a quota or multiple labelled quotas. Builds can be set up to require server shared resource locks in the Configuration Conditions. Stages can be setup to require agent or server shared resource locks in a new Shared Resource Locks tab on the Stage Options dialog.

Shared resource locks are automatically released at the end of the build or stage which acquired the lock.

Requeue Build

A new Requeue button has been added to the Build view page. This allows you to requeue an existing build using the same changesets, variables and queue options. The build will run for the latest configuration with any changes to stage actions, repositories etc.

A “Build Requeue Options” menu item opens dialog allowing you to change priority, comment and variables before requeuing the build.

Persist Build Variables

Continua CI takes a copy of configuration and project variables at the start of each build. Any changes to these build variables are discarded when the build finishes and cannot be used by other builds. A new Persist Build Variable build event handler allows you to store the value of the build variables as the default value of the configuration variable. The next build will then pick up the revised value for the build variable.

You can specify which build event triggers the variable persistence. You can also specify that the variable should not be persisted if the configuration variable was modified since a particular event. This is important as Continua allows multiple builds to run concurrently and you may otherwise get unpredictable results. We also recommended using shared resource locks in conjunction with this feature with prevent concurrency issues.

Additional Improvements

  • Variable prompt ordering. Variables now have a display order property allowing you to specify the order of variable prompts on the Queue Options dialog.
  • Clone buttons for Triggers, Repositories and Build Event Handlers.
  • Configuration Conditions can now be disabled.
  • Cake build action.

Note : You will need to update your agents after upgrading the server to this build.

Source: Version 1.8 History | Continua CI

–jeroen

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

Continua CI: viewing events (errors) for a certain repository #continuaci @FinalBuilder

Posted by jpluimers on 2015/12/09

Somehow this isn’t linked logically from the UI, so here are two sets of steps to get there:

From the “Event log”

  1. Go to the “Event Log” page on your Continua CI server; for my server that is https://continuaci.pluimers.com/administration/events.
  2. Click on any repository name (in my case DUnitX) and note the GUID at the end of the URL: https://continuaci.pluimers.com/administration/ci/repositories/index/94c6f27d-20a4-4f53-a81c-94f863db248d
  3. Append index and that GUID to the first URL: https://continuaci.pluimers.com/administration/events/index/94c6f27d-20a4-4f53-a81c-94f863db248d

From the “Source Repositories”

  1. Go to the “Source Repositories” URL on your Continua CI server; for my server that is https://continuaci.pluimers.com/administration/ci/repositories
  2. Click on the word “Error” or red cross (sometimes you can click only one of them) in front of any failing repository: https://continuaci.pluimers.com/administration/events/index/94c6f27d-20a4-4f53-a81c-94f863db248d

The second has the drawback that you can only see events for repositories that are currently in error, not any repository that has ever been in error.

So maybe I was doing something stupid and maybe there is a far easier way, but these work (:

–jeroen

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »