Jacamar CI v0.3.0

  • Release: v0.3.0

  • Date: 11/5/2020

  • Commit: 7a5ddfad

The 0.3.0 release saw continued efforts to improve the overall structure and reliability of the application. In addition key enhancements made to support deploying and making available Jacamar on test resources.

General Notes

  • Regardless of configuration the SCHEDULER_PARAMETERS variable will always be an available by default for any supported batch executor. Though we advise using administrative defined variable if one is provided. This should ensure compatibility is never broken when changes to a test environment occur.

  • Minor bug fixes and code quality improvements made throughout.

  • To better assist those in testing deployments prior to an official release you can find all packages created during any CI pipeline in the build-results job.

Admin Notes

  • Added support for release RPMs for both Jacamar CI as well as a patched version of the GitLab Runner that meets our requirements. For complete details on the deployment process of the provide package see the release documentation.

  • The [auth] table is now ONLY available to the Jacamar-Auth application. This change coupled with removal the enabled boolean should ease the configuration requirements.

    • Other enabled keys have been removed from Jacamar’s configuration wherever it is possible to accurately imply the functionality is desired (e.g. defining a validation_script means the Federation or RunAs flows should be enabled).

  • For the [batch] table, arguments_variable will now be an array of potential CI variables whose existence will be checked in order. The default SCHEDULER_PARAMETERS is always present as catch all.

    • [batch]
        arguments_variable = [
            "NEW_SITE_PARAMETERS", "OLD_SITE_PARAMETERS"
        ]
      
    • This change will make it easier to modify your executor’s configuration without necessarily breaking existing workflows. Additionally, the ever present SCHEDULER_PARAMETERS default will make on-boarding and documentation much less cumbersome.

  • Improve RunAs functionality to provide scripts with additional context and offer the ability to verify a checksum (SHA256) before execution. See the RunAs Docs for a complete list of new values.

    • Please note that the related workflow has not be altered, meaning backwards compatibility with existing scripts has been preserved.

    • Development groundwork laid for future`Go plugin <https://golang.org/pkg/plugin/>`_ support that is slated for next minor release as well as similar changes being implemented for federation.

  • Existing stateful configurations (established during config stage) will now be preferred over re-reading any configuration file provided to the cleanup stage.

  • To meet the requirements of both recent and future changes we now support the step_script stage along with the older build_script format.

    • Warning messages in jobs are generated by the runner and will remain until the official 1.14 release.

    • ../../../_images/step_script_warning.png
  • Development and build now requires Go version 1.15.1

  • Support for the CI Token Broker has been added and can be controlled via a new [broker] table in the configuration.

    Important

    Support for a token broker service is still under development and as such subject to unannounced changes. Comprehensive documentation will be added as the service is closer to a final release state.

  • Added the -trimpath flag to all builds to improve reproducibility.

  • Output from Federation and RunAs validation_script are captured and logged to Jacamar-Auth’s system logger when a failure in encountered.

    • Any stdout/stderr generated through validation remains hidden from users.

  • Permission check on Jacamar’s configuration file has been removed. It is still advised to protect this file with appropriate permissions.

    • Having Jacamar attempt to enforce this was leading to cumbersome errors as it naively only checked the file itself.

  • Corrected stdout and error/warning messaging formatting linked to the usage of Go’s fmt package that was encountered in rare circumstances.

  • All builds of the patched GitLab-Runner have been updated to the latest upstream release, 13.5.0.