bratislava / bratislava/github-actions

merge inhouse and non inhouse pipelines

Open
#22 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
No language data
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

'm starting to think that splitting this into two files wasn't the best idea. We are just copying the same code twice. Which goes directly against [DRY principle](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself).

My suggestion would be to keep just one file - .github/workflows/create-kustomize-with-bratiska-cli-inhouse.yml and drop "-inhouse" from the name. Then if you would like to run it on GitHub runners, you can just specify

runs-on: ['ubuntu-latest']
and it does the same thing and it is almost as many characters as specify "-bratiska-cli.yml" or "-bratiska-cli-inhouse.yml". Or, if you would like to be even more user friendly, you can just rework this into:

runs-on:
description: "Define environment where the job will run. Possible values: ['github', 'inhouse']"
type: choice
options:
- github
- inhouse
required: false
default: 'inhouse'
Then you can just have a basic step that makes that decision inside a pipeline

- name: Pick a runner
run: |
if [[ "${inputs.runs-on}" == "github" ]]; then
# print and set env variable
elif [[ "${inputs.runs-on}" == "inhouse" ]]; then
# print and set env variable
else
# throw an error about unknown runner environment
fi
This leaves the door open for multiple environments in the future and is still as user friendly as possible and you can easily switch just by specifying different input.

I'm flagging this here, as .github/workflows/create-kustomize-with-bratiska-cli-inhouse.yml and .github/workflows/create-kustomize-with-bratiska-cli.yml are new files and we can easily change it here. We don't have to make this change now for all of the files and all of the repositories. That can be pushed to latter PRs/changes.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.