-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Checkton workflow #1085
Closed
Closed
Add Checkton workflow #1085
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
e10b9bb
Add Checkton workflow
chmeliik ab86b8f
mv .tekton/pull-request.yaml -> .tekton/pr.yaml
chmeliik 7d1f3fc
add problematic bash code to .tekton/pr.yaml
chmeliik f044306
cp prefetch-dependencies/{0.1 -> 0.2}
chmeliik 3dd6dc0
add bash problem to prefetch-dependencies/0.2
chmeliik 020fd2f
add bash problem to buildah.yaml
chmeliik File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: Checkton | ||
on: | ||
pull_request: | ||
branches: [main] | ||
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
# Differential Checkton requires full git history | ||
fetch-depth: 0 | ||
|
||
- name: Run Checkton | ||
id: checkton | ||
uses: chmeliik/[email protected] | ||
with: | ||
fail-on-findings: false | ||
find-copies-harder: true | ||
|
||
- name: Upload SARIF file | ||
uses: github/codeql-action/upload-sarif@v3 | ||
with: | ||
sarif_file: ${{ steps.checkton.outputs.sarif }} | ||
# Avoid clashing with ShellCheck | ||
category: checkton |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# prefetch-dependencies task | ||
|
||
Task that uses Cachi2 to prefetch build dependencies. | ||
See docs at https://github.com/containerbuildsystem/cachi2#basic-usage. | ||
|
||
## Parameters | ||
|name|description|default value|required| | ||
|---|---|---|---| | ||
|input|Configures project packages that will have their dependencies prefetched.||true| | ||
|dev-package-managers|Enable in-development package managers. WARNING: the behavior may change at any time without notice. Use at your own risk. |false|false| | ||
|log-level|Set cachi2 log level (debug, info, warning, error)|info|false| | ||
|caTrustConfigMapName|The name of the ConfigMap to read CA bundle data from.|trusted-ca|false| | ||
|caTrustConfigMapKey|The name of the key in the ConfigMap that contains the CA bundle data.|ca-bundle.crt|false| | ||
|
||
## Workspaces | ||
|name|description|optional| | ||
|---|---|---| | ||
|source|Workspace with the source code, cachi2 artifacts will be stored on the workspace as well|false| | ||
|git-basic-auth|A Workspace containing a .gitconfig and .git-credentials file or username and password. These will be copied to the user's home before any cachi2 commands are run. Any other files in this Workspace are ignored. It is strongly recommended to bind a Secret to this Workspace over other volume types. |true| |
122 changes: 122 additions & 0 deletions
122
task/prefetch-dependencies/0.2/prefetch-dependencies.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
apiVersion: tekton.dev/v1 | ||
kind: Task | ||
metadata: | ||
labels: | ||
app.kubernetes.io/version: "0.1" | ||
annotations: | ||
tekton.dev/pipelines.minVersion: "0.12.1" | ||
tekton.dev/tags: "image-build, hacbs" | ||
name: prefetch-dependencies | ||
spec: | ||
description: |- | ||
Task that uses Cachi2 to prefetch build dependencies. | ||
See docs at https://github.com/containerbuildsystem/cachi2#basic-usage. | ||
params: | ||
- description: Configures project packages that will have their dependencies prefetched. | ||
name: input | ||
- description: > | ||
Enable in-development package managers. WARNING: the behavior may change at any time without | ||
notice. Use at your own risk. | ||
name: dev-package-managers | ||
default: "false" | ||
- description: Set cachi2 log level (debug, info, warning, error) | ||
name: log-level | ||
default: "info" | ||
- name: caTrustConfigMapName | ||
type: string | ||
description: The name of the ConfigMap to read CA bundle data from. | ||
default: trusted-ca | ||
- name: caTrustConfigMapKey | ||
type: string | ||
description: The name of the key in the ConfigMap that contains the CA bundle data. | ||
default: ca-bundle.crt | ||
steps: | ||
- image: quay.io/redhat-appstudio/cachi2:0.7.0@sha256:1fc772aa3636fd0b43d62120d832e5913843e028e8cac42814b487c3a0a32bd8 | ||
# per https://kubernetes.io/docs/concepts/containers/images/#imagepullpolicy-defaulting | ||
# the cluster will set imagePullPolicy to IfNotPresent | ||
name: prefetch-dependencies | ||
env: | ||
- name: INPUT | ||
value: $(params.input) | ||
- name: DEV_PACKAGE_MANAGERS | ||
value: $(params.dev-package-managers) | ||
- name: LOG_LEVEL | ||
value: $(params.log-level) | ||
- name: WORKSPACE_GIT_AUTH_BOUND | ||
value: $(workspaces.git-basic-auth.bound) | ||
- name: WORKSPACE_GIT_AUTH_PATH | ||
value: $(workspaces.git-basic-auth.path) | ||
volumeMounts: | ||
- name: trusted-ca | ||
mountPath: /mnt/trusted-ca | ||
readOnly: true | ||
script: | | ||
if [ -z ${INPUT} ] | ||
Check warning Code scanning / shellcheck SC2086 Warning
Double quote to prevent globbing and word splitting.
|
||
then | ||
# Confirm input was provided though it's likely the whole task would be skipped if it wasn't | ||
echo "No prefetch will be performed because no input was provided for cachi2 fetch-deps" | ||
exit 0 | ||
fi | ||
|
||
if [ "$DEV_PACKAGE_MANAGERS" = "true" ]; then | ||
dev_pacman_flag=--dev-package-managers | ||
else | ||
dev_pacman_flag="" | ||
fi | ||
|
||
# Copied from https://github.com/konflux-ci/build-definitions/blob/main/task/git-clone/0.1/git-clone.yaml | ||
if [ "${WORKSPACE_GIT_AUTH_BOUND}" = "true" ] ; then | ||
if [ -f "${WORKSPACE_GIT_AUTH_PATH}/.git-credentials" ] && [ -f "${WORKSPACE_GIT_AUTH_PATH}/.gitconfig" ]; then | ||
cp "${WORKSPACE_GIT_AUTH_PATH}/.git-credentials" "${HOME}/.git-credentials" | ||
cp "${WORKSPACE_GIT_AUTH_PATH}/.gitconfig" "${HOME}/.gitconfig" | ||
# Compatibility with kubernetes.io/basic-auth secrets | ||
elif [ -f "${WORKSPACE_GIT_AUTH_PATH}/username" ] && [ -f "${WORKSPACE_GIT_AUTH_PATH}/password" ]; then | ||
HOSTNAME=$(cd "$(workspaces.source.path)/source" && git remote get-url origin | awk -F/ '{print $3}') | ||
echo "https://$(cat ${WORKSPACE_GIT_AUTH_PATH}/username):$(cat ${WORKSPACE_GIT_AUTH_PATH}/password)@$HOSTNAME" > "${HOME}/.git-credentials" | ||
echo -e "[credential \"https://$HOSTNAME\"]\n helper = store" > "${HOME}/.gitconfig" | ||
else | ||
echo "Unknown git-basic-auth workspace format" | ||
exit 1 | ||
fi | ||
chmod 400 "${HOME}/.git-credentials" | ||
chmod 400 "${HOME}/.gitconfig" | ||
fi | ||
|
||
ca_bundle=/mnt/trusted-ca/ca-bundle.crt | ||
if [ -f "$ca_bundle" ]; then | ||
echo "INFO: Using mounted CA bundle: $ca_bundle" | ||
cp -vf $ca_bundle /etc/pki/ca-trust/source/anchors | ||
update-ca-trust | ||
fi | ||
|
||
cachi2 --log-level="$LOG_LEVEL" fetch-deps \ | ||
$dev_pacman_flag \ | ||
--source=$(workspaces.source.path)/source \ | ||
--output=$(workspaces.source.path)/cachi2/output \ | ||
"${INPUT}" | ||
|
||
cachi2 --log-level="$LOG_LEVEL" generate-env $(workspaces.source.path)/cachi2/output \ | ||
--format env \ | ||
--for-output-dir=/cachi2/output \ | ||
--output $(workspaces.source.path)/cachi2/cachi2.env | ||
|
||
cachi2 --log-level="$LOG_LEVEL" inject-files $(workspaces.source.path)/cachi2/output \ | ||
--for-output-dir=/cachi2/output | ||
workspaces: | ||
- name: source | ||
description: Workspace with the source code, cachi2 artifacts will be stored on the workspace as well | ||
- name: git-basic-auth | ||
description: | | ||
A Workspace containing a .gitconfig and .git-credentials file or username and password. | ||
These will be copied to the user's home before any cachi2 commands are run. Any | ||
other files in this Workspace are ignored. It is strongly recommended | ||
to bind a Secret to this Workspace over other volume types. | ||
optional: true | ||
volumes: | ||
- name: trusted-ca | ||
configMap: | ||
name: $(params.caTrustConfigMapName) | ||
items: | ||
- key: $(params.caTrustConfigMapKey) | ||
path: ca-bundle.crt | ||
optional: true |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Check warning
Code scanning / shellcheck
SC2086 Warning