variables: FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: "true" # renovate: datasource=gitlab-releases depName=gitlab-org/cli GLAB_VERSION: 1.45.0 # renovate: datasource=docker depName=aclemons/sbo-maintainer-tools versioning=docker SBO_MAINTAINER_TOOLS_IMAGE: aclemons/sbo-maintainer-tools:0.9.1-15.0@sha256:7a961b60a487ecd3e6171f4e7e7ee7c8f659fdc6a37aac26ae2dcd5a3cb8414f workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' default: image: docker:27.1.1@sha256:a690693976550aba640859bb3c3c29eb323a4f53f684c99b2a8282b14a22308b services: - docker:27.1.1-dind@sha256:a690693976550aba640859bb3c3c29eb323a4f53f684c99b2a8282b14a22308b pr-checks: script: | set -e set -o pipefail apk add git wget --quiet "https://gitlab.com/gitlab-org/cli/-/releases/v$GLAB_VERSION/downloads/glab_""$GLAB_VERSION""_Linux_x86_64.tar.gz" tar -xf "glab_""$GLAB_VERSION""_Linux_x86_64.tar.gz" bin/glab chmod 0755 bin/glab mv bin/glab /usr/local/bin rm -rf bin docker pull "$SBO_MAINTAINER_TOOLS_IMAGE" git diff-tree --name-only --diff-filter=d --no-commit-id -r $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA | sed '/^\./d' | sed -n '/[^\/][^\/]*\/[^\/][^\/]*\//p' | xargs -I xx dirname xx | sort -u | while read -r project ; do mkfifo pipe tee sbolint-output < pipe & exec 3>pipe set +e docker run --rm -v "$(pwd):/work" -w /work "$SBO_MAINTAINER_TOOLS_IMAGE" sbolint "$project" >&3 2>&1 sbolint_status="$?" set -e exec 3>&- rm pipe { if [[ "$sbolint_status" -eq 0 ]] ; then printf '#### ✅ sbolint - %s\n\n' "$project ✅" else printf '#### ⛔️ sbolint - %s\n\n' "$project ⛔️" fi printf '```\n' cat sbolint-output rm sbolint-output printf '```\n' } > comment-output if [ -z "$MR_AUTOMATION_TOKEN" ] ; then printf 'No token available for MR comments\n' cat comment-output else # $CI_PROJECT_PATH points to the fork GITLAB_TOKEN="$MR_AUTOMATION_TOKEN" glab mr --repo "SlackBuilds.org/slackbuilds" comment $(echo "$CI_OPEN_MERGE_REQUESTS" | cut -d '!' -f2) --unique=true --message "$(cat comment-output)" fi done git diff-tree --name-only --diff-filter=d --no-commit-id -r $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA | sed '/^\./d' | sed -n '/[^\/][^\/]*\/[^\/][^\/]*\//p' | xargs -I xx dirname xx | sort -u | while read -r project ; do short_project="$(printf '%s\n' "$project" | cut -d/ -f2)" response="$(wget -q -O - "https://slackbuilds.org/revdeps.php?q=$short_project" | sort)" { printf '#### reverse dependencies - %s\n\n' "$project" if [[ "$response" == "" ]] ; then printf 'None\n' else printf '%s\n' "$response" | sort | sed 's/^/- [ ] /' fi } > comment-output if [ -z "$MR_AUTOMATION_TOKEN" ] ; then printf 'No token available for MR comments\n' cat comment-output else # $CI_PROJECT_PATH points to the fork GITLAB_TOKEN="$MR_AUTOMATION_TOKEN" glab mr --repo "SlackBuilds.org/slackbuilds" comment $(echo "$CI_OPEN_MERGE_REQUESTS" | cut -d '!' -f2) --unique=true --message "$(cat comment-output)" fi done