As a contributor to the galasa open source project, I want builds to be in the open, and use github actions, so that I can see build logs, see built artifacts, benefit from integration with github actions, and all without using any resources within the secretive IBM firewall.
Background
There are many benefits of moving our infrastructure to use github actions.
Builds will be immediately kicked off, no 2-minute delay for them to start.
build logs are available for ages
built artifacts can be made available within the build results
Objectives:
Now that we have learned more about GH Actions with the spike story #1719 , we can move on to recreating GH Actions builds for other components that are in the main build chain
Side by side comparison with Tekton pipeline
Try out the Docker registry
For reference, look at the existing Tekton pipelines for framework and the associated Tasks that it utilises, but remove/adapt Tasks as appropriate for GitHub actions.
Update: The workflows are for the time being going to build docker images and supply the current development Maven registries until we have snapshotting set up in the source code. After this, we'll switch the workflows to use GH Packages.
Tasks
Dhruv:
[x] Copy the REST API Doc site Dockerfile over into the 'framework' repository
[x] Use GitHub actions to build the 'framework' repository
[x] Use the openapi2beans executable that was built in the 'buildutils' workflow to generate the Beans (see Task generate-openapi-beans in existing pipeline)
[x] The source should be built with Gradle and the artefacts deployed to the GitHub Maven repository
[x] Then REST API Doc site build into a Docker image which is stored in the GitHub container registry
[x] Create any necessary Secrets to be pulled into the workflow
[x] The GitHub actions workflow should be integrated with PRs as well as merges into the main branch, so we see the tekton and github actions build processes side by side
Jade:
[x] Recreate workflows and run as galasa-dev org so the Galasa secrets are used
Outstanding actions:
~Figure out how to avoid 409 conflicts when pushing the same artefact/version to the maven registry~
[x] Update permissions to be able to use the openapi2beans image in the workflow, currently it is not allowed as the openapi2beans image belongs to the buildutils repo, and this workflow is for another repo
[x] Fix error below:
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':dev.galasa:signMavenPublication'.
Cannot perform signing task ':dev.galasa:signMavenPublication' because it has no configured signatory
[x] Figure out how to increase space for the gradle project, as getting this error: > Java heap space
Story
As a contributor to the galasa open source project, I want builds to be in the open, and use github actions, so that I can see build logs, see built artifacts, benefit from integration with github actions, and all without using any resources within the secretive IBM firewall.
Background
There are many benefits of moving our infrastructure to use github actions.
Objectives:
For reference, look at the existing Tekton pipelines for framework and the associated Tasks that it utilises, but remove/adapt Tasks as appropriate for GitHub actions.
Update: The workflows are for the time being going to build docker images and supply the current development Maven registries until we have snapshotting set up in the source code. After this, we'll switch the workflows to use GH Packages.
Tasks
Dhruv:
openapi2beans
executable that was built in the 'buildutils' workflow to generate the Beans (see Taskgenerate-openapi-beans
in existing pipeline)Jade:
Outstanding actions:
> Java heap space