[x] Shall include a i) general description, ii) definition of CI/CD and digital badges, iii) intro to Pipeline as a Service, iv) intro to Quality Assessment & Awarding, v) deploy your own SQAaaS
Pipeline as a Service block
[x] Follows a 4 steps workflow: i) The Repos (find sth more appropriate), ii) The Services, iii) The Criteria, iv) The Pipeline
The Repos panel
[x] Make clear distinction (through the web) between the so-called pipeline repo (the target repo where the pipeline will be added) and additional repos
[x] Using a pipeline repo is the default behavior
[x] The definition of external repositories appears only upon user selection (Does the pipeline requires to checkout external repositories? checklist)
[x] Allows to add a specific branch name
[x] Remove Pipeline react to al changes? checkbox, no longer needed
The Services panel
The Docker push panel should contain:
[x] Appear outside of the advanced features panel, in a e.g Would you like to push the Docker image to a registry? checkbox
[ ] Information icon for 'Dockerfile' input field, stating that the value is the relative path (from the root path of the repository) to the Dockerfile, including the file name of the latter (not only the folder path)
[x] Warning that a Jenkins credential might be needed for a successful push
[ ] Inform about the specifics of using a Github id for signing into Jenkins
[ ] Inform about the possibility to push to eoscsynergyapps Docker Hub repository (if the user does not want to create a credential in Jenkins)
[ ] When using generic credentials, the web should parse the 'image name' value (as it is being written) & add the resultant Docker registry repo underneath the input field.
[ ] The 'Image name' input fields must have a '?' icon with the information about the possibility of using defined env & git-related. This message is currently displayed in a info panel
[ ] Review that Credentials can be created in Jenkins by developers of Thematic Services
[x] "+ ADD CRITERIA" to "+ ADD CRITERION"
[x] When clicking on "+ ADD CRITERIA" button without adding any builder, a Warning panel shall pop up to inform that "Please add a builder tool to finish off the criterion definition"
The Criteria panel
[x] Service dropdown list shall appear first
[x] Default repo is the 'thisrepo' one. If any external repo has been defined, a new dropdown list shall appear with the external repo selection. This dropdown is introduced by "Does the criterion apply to an outside repo?"_ checklist
[x] The 'Choose a Criteria' dropdown shall appear centered in the panel, and shall be the unique form being displayed the first time we access this panel. The rest of forms will appear upon the criterion selection, including the 'Builder tool'. The 'Builder settings' text shall be moved to a tooltip ('?' icon) next to the 'Choose a builder tool' form
[x] Both tox_file and testenv shall be optional. The API takes care of setting defaults.
The Pipeline panel
Shall include:
[x] an i) Information summary, ii) JePL file contents arranged in tabs, iii) Actions through buttons (download zip, pull request and try out pipeline)
[x] When running the pipeline (Try out pipeline), a progress bar (or similar) shall be displayed
[x] When running the pipeline (Try out pipeline), the navigation shall be blocked until it gets a status value from the API
[x] When running the pipeline (Try out pipeline), a Cancel execution button will be available, but only enabled after a status value is obtained from the API
[x] The loading spinner must display the status of the Jenkins job (as returned by the API)
[x] The label for the URL could be instead of just 'URL' sth like 'URL of the pipeline's target repository'
The Error info panel
[x] An unexpected error is currently reported with no text. We shall put some message there such as "Unexpected error obtained from the SQAaaS API"
[x] When running the pipeline and a 'this_repo' has been defined, the Error info panel is displayed (prompting for a source repo to checkout). We shall use Warning info panel instead (with different color), as it is not an error.
[x] When prompting for a repo_url (and repo_branch), add an info note (bell) that indicates that repositories MUST be public for the checkout to work
Displaying the results
[ ] If any Docker image has been pushed to an external registry, highlight this in the view by adding a link to the registry's image URL
[x] Do not remove unrelated components: for instance, when removing a service, do not remove repositories not related to that one. Likewise, if they are related, and thus they need to be removed, add a Warning info panel saying that "By removing service X, you will remove all the associated .."
[x] All the key:value forms must have both 'key' and 'value' lowercase, so that the don't appear as important as the parent title
[ ] Checkbox questions (yes/no answer) in a different color. Should not be blue, since this is the color of the links.
[ ] The '?' tooltip for the 'Jenkins Credential ID' must have the explicit link to https://jenkins.eosc-synergy.eu, and any additional (brief) explanation of how to add credentials there.
Web <-> API integration tests
Bugs
[x] Double-encode branch names before being passed to Jenkins
[x] External repos are not added to config:project_repos
[x] Even when pipeline is in SUCCESS status, the run pipeline popup keeps checking for the status
Web design
Landing page
Pipeline as a Service block
The Repos panel
The Services panel
eoscsynergyapps
Docker Hub repository (if the user does not want to create a credential in Jenkins)The Criteria panel
tox_file
andtestenv
shall be optional. The API takes care of setting defaults.The Pipeline panel
commands
builder (see https://github.com/EOSC-synergy/sqaaas-web/issues/82)repo_url
(andrepo_branch
), add an info note (bell) that indicates that repositories MUST be public for the checkout to workGeneral aspects from the panels
Web <-> API integration tests
Bugs
config:project_repos
4xx
occurs, the web is not showing the message returned by the API (see https://github.com/EOSC-synergy/sqaaas-web/issues/85)Basic operation
issue_badge
,repo_url
,repo_branch
):repo_url
in the same GH orgrepo_url
NOT existsrepo_url
existsrepo_url
andrepo_branch
exists (is branch updated?)repo_url
not in the same GH orgrepo_url
NOT existsrepo_url
existsrepo_url
andrepo_branch
exists (is branch updated?)repo_url
NOT contains '.git' extension (github.com & gitlab.com)repo_url
does not exist (github.com & gitlab.com)repo_branch
does not exist (github.com & gitlab.com)repo_url
contains '.git' extension (github.com & gitlab.com)repo_url
is private (github.com & gitlab.com)commands
builder & run_pipeline()when
condition)commands
builder & run_pipeline() & handle resultant scriptscommands
builder & run_pipeline() & handle resultant scripts4xx
error when the target repository and/or branch does not existFeatures
when
clauseconfig.yml
filesJenkinsfile
that maps the appropriate (criterion,config.yml
file) dataconfig.yml
files whenever the pipeline repo is updatedDocker push feature
push: true
credential_id
is set by the user OR user selects (checkbox) the catch-all 'eoscsynergybot' credential idDockerfile
orcontext
Dockerfile
parametercontext
for the user, both with 'this_repo' and external reposeoscsynergyapps
organization in Docker Hub.JPL_DOCKERPUSH
,JPL_USERNAME
,JPL_PASSWORD
The
commands
builderthis_repo
) do nothing.sqa
folder and run them with/usr/bin/env sh <script.sh>
The Tox builder
tox
andcommands
tox_file
path automatically for the user (it is now required by the jpl-validator)Badge issuing
Use cases
Run pipeline
repo_branch
NOT INrepo_url
(fails with "409 Client Error: Conflict for url: https://jenkins.eosc-synergy.eu/job/eosc-synergy-org/job/my_pipeline.sqaaas/job/master/build")Pull request & Run pipeline