Skip to content

Commit f9506a0

Browse files
committed
chore(ci): fixes
1 parent 2004898 commit f9506a0

File tree

4 files changed

+98
-70
lines changed

4 files changed

+98
-70
lines changed

Dockerfile

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
FROM ruby:3.4.4 AS ci_image
22

3-
# 92c56cb432c5d86d8687d765bd6d0847dc80edfbab28a878a9c11eec9289b02d fly-7.8.2-linux-amd64.tgz
43
# 6cf7acfcde78a980339cba1534c01be28d360306e5c76c60c5546e3847434eb7 fly-7.9.1-linux-amd64.tgz
54
# 1701337abe34796eb59c01a9c5505d956ecc08a094fcd1232efbc781e9ababf8 fly-7.10.0-linux-amd64.tgz
65
# dd1e5f94214632a09ce07426c2392ab8803ae8b307c0ba5436239e9b67d01c52 fly-7.12.1-linux-amd64.tgz
@@ -14,48 +13,47 @@ ARG CONCOURSE_SHA256=dd1e5f94214632a09ce07426c2392ab8803ae8b307c0ba5436239e9b67d
1413
ARG BOSH_CLI_VERSION=7.9.8
1514
ARG BOSH_CLI_SHA256=2e7384092d185a1c351f305cc12f35c8117023541d2a3c8a208eca7fbd12678f
1615

17-
RUN apt-get update && \
18-
apt-get -y install tree vim netcat-traditional dnsutils jq
16+
RUN apt-get update \
17+
&& apt-get -y install tree vim netcat-traditional dnsutils jq
1918

2019
# install cf-ops-automation Gemfile
2120
RUN gem update --system
2221
RUN gem install bundler
2322
RUN echo "Curl version: $(curl --version)"
2423
COPY Gemfile /usr/local/Gemfile
2524
COPY Gemfile.lock /usr/local/Gemfile.lock
26-
RUN cd /usr/local && bundle install --retry 5
25+
WORKDIR "/usr/local"
26+
RUN bundle install --retry 5
2727

28+
WORKDIR "/tmp"
2829
# install fly-cli
2930
ARG FLY_DOWNLOAD_URL="https://github.com/concourse/concourse/releases/download/v${CONCOURSE_VERSION}/fly-${CONCOURSE_VERSION}-linux-amd64.tgz"
3031
RUN echo "Prepare FLY downloading at $FLY_DOWNLOAD_URL"
3132
RUN curl --retry 30 -sSL "$FLY_DOWNLOAD_URL" -o /tmp/fly.tgz \
32-
&& echo "Computed sha256sum: $(sha256sum /tmp/fly.tgz)" \
33-
&& [ ${CONCOURSE_SHA256} = $(sha256sum /tmp/fly.tgz | cut -d' ' -f1) ] \
34-
&& cd /tmp \
35-
&& tar xzvf /tmp/fly.tgz \
36-
&& mv /tmp/fly /usr/local/bin/fly \
37-
&& chmod +x /usr/local/bin/fly \
38-
&& rm -rf /tmp/fly*
39-
33+
&& echo "Computed sha256sum: $(sha256sum /tmp/fly.tgz)" \
34+
&& [ ${CONCOURSE_SHA256} = $(sha256sum /tmp/fly.tgz | cut -d' ' -f1) ] \
35+
&& tar xzvf /tmp/fly.tgz \
36+
&& mv /tmp/fly /usr/local/bin/fly \
37+
&& chmod +x /usr/local/bin/fly \
38+
&& rm -rf /tmp/fly*
4039

4140
ARG QLTY_INSTALL_URL="https://qlty-releases.s3.amazonaws.com/qlty"
4241
ARG QLTY_TARGET="x86_64-unknown-linux-gnu"
4342
RUN curl --retry 30 -sSL "$QLTY_INSTALL_URL/latest/qlty-$QLTY_TARGET.tar.xz" -o /tmp/qlty.tar.xz \
44-
&& cd /tmp \
45-
&& tar xJvf qlty.tar.xz \
46-
&& du -a /tmp \
47-
&& mv /tmp/qlty-$QLTY_TARGET/qlty /usr/local/bin/qlty \
48-
&& chmod a+x /usr/local/bin/qlty \
49-
&& rm -rf /tmp/qlty*
43+
&& tar xJvf qlty.tar.xz \
44+
&& du -a /tmp \
45+
&& mv /tmp/qlty-$QLTY_TARGET/qlty /usr/local/bin/qlty \
46+
&& chmod a+x /usr/local/bin/qlty \
47+
&& rm -rf /tmp/qlty*
5048

5149
RUN curl --retry 30 -sSL "https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc" -o /usr/local/bin/gh-md-toc \
52-
&& chmod a+x /usr/local/bin/gh-md-toc
50+
&& chmod a+x /usr/local/bin/gh-md-toc
5351

5452
# Download BOSH v2 CLI
5553
RUN curl --retry 30 -sSLo /usr/local/bin/bosh https://github.com/cloudfoundry/bosh-cli/releases/download/v${BOSH_CLI_VERSION}/bosh-cli-${BOSH_CLI_VERSION}-linux-amd64 \
56-
&& echo "Computed sha256sum: $(sha256sum /usr/local/bin/bosh)" \
57-
&& echo "${BOSH_CLI_SHA256} */usr/local/bin/bosh" | shasum -a 256 -c - \
58-
&& chmod +x /usr/local/bin/bosh
54+
&& echo "Computed sha256sum: $(sha256sum /usr/local/bin/bosh)" \
55+
&& echo "${BOSH_CLI_SHA256} */usr/local/bin/bosh" | shasum -a 256 -c - \
56+
&& chmod +x /usr/local/bin/bosh
5957

6058
# remove old version of bundler to avoid confusion between bundler and bundle cmd
6159
# bundler => old binary
@@ -67,4 +65,4 @@ FROM ci_image AS test_ci_image
6765
RUN ruby --version && bosh --version && fly --version && qlty --version && gh-md-toc --version
6866

6967

70-
FROM ci_image
68+
FROM ci_image

ci/pipeline.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ jobs:
231231
bundle exec rspec --version
232232
qlty --version
233233
echo "---------------------------"
234-
echo "Setup Code Climate pre-requisites"
234+
echo "Setup Qlty pre-requisites"
235235
cd ../concourse-meta
236236
BUILD_TEAM=$(if [ -f build_team_name ];then cat build_team_name;fi)
237237
BUILD_PIPELINE=$(if [ -f build_pipeline_name ];then cat build_pipeline_name;fi)
@@ -256,10 +256,10 @@ jobs:
256256
echo "Setup Qlty coverage"
257257
bundle exec rspec --format documentation --format html --out ../test-reports/rspec-results.html
258258
echo "Sending coverage to Qlty"
259-
if ! qlty coverage publish --tag unit; then
259+
if ! qlty coverage publish --tag unit --override-branch "$GIT_BRANCH" --override-commit-sha "$GIT_COMMIT_SHA" --override-build-id "$BUILD_ID" coverage/.resultset.json; then
260260
echo "Failed to run qlty. Re-launch in debug mode";
261261
echo "---------------------------"
262-
qlty coverage publish --tag unit --debug;
262+
qlty coverage publish --tag unit --override-branch "$GIT_BRANCH" --override-commit-sha "$GIT_COMMIT_SHA" --override-build-id "$BUILD_ID" --debug coverage/.resultset.json;
263263
fi
264264
params:
265265
QLTY_COVERAGE_TOKEN: ((qlty-coverage_token))

ci/scripts/setup-oci-registry.sh

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,35 @@ set -e
66
coa_ci_registry_name="dockerhub-for-coa-ci"
77
coa_ci_project_name="coa-ci.docker.io"
88

9-
109
registry_id=$(curl -sSLk -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
11-
"$OCI_REGISTRY_URL/api/v2.0/registries?name=$coa_ci_registry_name"|jq -r 'first(.[]? | .id) // ""' )
12-
if [ "$registry_id" = "" ];then
13-
echo "Creating registry $coa_ci_registry_name"
14-
curl -sSLk -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
15-
-X POST $OCI_REGISTRY_URL/api/v2.0/registries \
16-
-d '{ "name": "'$coa_ci_registry_name'", "url": "https://hub.docker.com", "type": "docker-hub", "insecure": false}'
17-
echo "registry $coa_ci_registry_name created. Getting id"
18-
registry_id=$(curl -sSLk -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
19-
"$OCI_REGISTRY_URL/api/v2.0/registries?name=$coa_ci_registry_name"|jq -r 'first(.[]? | .id) // ""' )
10+
"$OCI_REGISTRY_URL/api/v2.0/registries?name=$coa_ci_registry_name" | jq -r 'first(.[]? | .id) // ""')
11+
if [ "$registry_id" = "" ]; then
12+
echo "Creating registry $coa_ci_registry_name"
13+
curl -sSLk -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
14+
-X POST "$OCI_REGISTRY_URL/api/v2.0/registries" \
15+
-d '{ "name": "'$coa_ci_registry_name'", "url": "https://hub.docker.com", "type": "docker-hub", "insecure": false}'
16+
echo "registry $coa_ci_registry_name created. Getting id"
17+
registry_id=$(curl -sSLk -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
18+
"$OCI_REGISTRY_URL/api/v2.0/registries?name=$coa_ci_registry_name" | jq -r 'first(.[]? | .id) // ""')
2019
fi
21-
if [ "$registry_id" = "" ];then
22-
echo "ERROR: failed to create registry"
23-
exit 1
20+
if [ "$registry_id" = "" ]; then
21+
echo "ERROR: failed to create registry"
22+
exit 1
2423
fi
2524

2625
echo "Registry $coa_ci_registry_name id: $registry_id"
2726

2827
DATA=$(jq -n --arg name "$coa_ci_project_name" --argjson reg "$registry_id" '{project_name: $name, metadata: {public: "true"}, registry_id: $reg}')
29-
if ! curl --head -sSLfk -H 'accept: application/json' -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" "$OCI_REGISTRY_URL/api/v2.0/projects?project_name=$coa_ci_project_name" 2>&1 >/dev/null;then
30-
echo "Project $coa_ci_project_name NOT FOUND"
31-
curl -k -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
32-
-X POST $OCI_REGISTRY_URL/api/v2.0/projects \
33-
-d "$DATA"
28+
if ! curl --head -sSLfk -H 'accept: application/json' -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" "$OCI_REGISTRY_URL/api/v2.0/projects?project_name=$coa_ci_project_name" >/dev/null 2>&1; then
29+
echo "Project $coa_ci_project_name NOT FOUND"
30+
curl -k -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" -H 'Content-Type: application/json' \
31+
-X POST "$OCI_REGISTRY_URL/api/v2.0/projects" \
32+
-d "$DATA"
3433
else
35-
echo "Project $coa_ci_project_name already exists"
34+
echo "Project $coa_ci_project_name already exists"
3635
fi
3736

38-
if ! curl --head -sSLfk -H 'accept: application/json' -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" "$OCI_REGISTRY_URL/api/v2.0/projects?project_name=$coa_ci_project_name";then
39-
echo "FAILED to create project $coa_ci_project_name"
40-
exit 1
37+
if ! curl --head -sSLfk -H 'accept: application/json' -u "$OCI_REGISTRY_USERNAME:$OCI_REGISTRY_PASSWORD" "$OCI_REGISTRY_URL/api/v2.0/projects?project_name=$coa_ci_project_name"; then
38+
echo "FAILED to create project $coa_ci_project_name"
39+
exit 1
4140
fi

run-renovate-locally.bash

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,64 @@
11
#!/bin/bash
2-
readonly base_dir_dir="$(realpath $0|xargs dirname)"
3-
GIT_REPO="$base_dir_dir"
2+
readonly base_dir="$(realpath $0 | xargs dirname)"
3+
4+
GIT_REPO="$base_dir"
45
LOG_LEVEL="${LOG_LEVEL:-debug}"
56
RENOVATE_ENABLED_MANAGERS="${RENOVATE_ENABLED_MANAGERS:-""}"
67
RENOVATE_INCLUDE_PATHS="${RENOVATE_INCLUDE_PATHS:-""}"
7-
if [ -z "$GITHUB_COM_TOKEN" ];then
8-
echo -e "WARNING: missing GitHub token to allow github release version detection. Please set it before running this script, using \n export GITHUB_COM_TOKEN=\"GH-GH-GH-GH-GH-GH\""
9-
sleep 1
10-
fi
11-
if [ -z "$RENOVATE_BOT" ];then
12-
echo -e "WARNING: missing Renovate Bot. Please set it before running this script, using \n export RENOVATE_BOT=\"RRRRRRR\""
13-
sleep 1
8+
RENOVATE_PLATFORM="${RENOVATE_PLATFORM:-local}"
9+
# See https://docs.renovatebot.com/presets-default/#githubcomtokenarg0
10+
if [ -z "$GITHUB_TOKEN" ]; then
11+
echo -e "ERROR: missing GitHub token to allow github release version detection. Please set it before running this script, using \n export GITHUB_TOKEN=\"xxx\""
12+
exit 1
1413
fi
14+
15+
#RENOVATE_TOKEN, see https://docs.renovatebot.com/self-hosted-configuration/#token
16+
1517
echo "Set LOG_LEVEL to manage log level. Default 'debug'.Current Log level: <$LOG_LEVEL>"
1618
echo "Set RENOVATE_ENABLED_MANAGERS to restrict active managers. Current RENOVATE_ENABLED_MANAGERS: <$RENOVATE_ENABLED_MANAGERS> #Empty means all managers are enabled"
1719
echo "Set RENOVATE_INCLUDE_PATHS to restrict renovate scan. Current RENOVATE_INCLUDE_PATHS: <$RENOVATE_INCLUDE_PATHS> #Empty means scan all paths"
1820
echo "Git repo volume path: $GIT_REPO"
19-
docker run \
20-
--rm \
21-
-e LOG_LEVEL="$LOG_LEVEL" \
22-
-e GITHUB_COM_TOKEN="$GITHUB_COM_TOKEN" \
23-
-e RENOVATE_ENABLED_MANAGERS="$RENOVATE_ENABLED_MANAGERS" \
24-
-e RENOVATE_INCLUDE_PATHS="$RENOVATE_INCLUDE_PATHS" \
25-
-e RENOVATE_BOT="$RENOVATE_BOT" \
26-
-v "$GIT_REPO:/tmp/local-git-repo" \
27-
--workdir /tmp/local-git-repo \
28-
ghcr.io/renovatebot/renovate \
29-
--platform=local \
30-
--semantic-commits=disabled \
31-
| tee renovate.log
3221

22+
# We need distinct cache whether running in local or github platform
23+
# Otherwise local tries to git update from cache and fails.
24+
CACHED_TMP_RENOVATE="${CACHED_TMP_RENOVATE:-/tmp/renovate/${RENOVATE_PLATFORM}}"
25+
echo "Renovate cache is mounted from ${CACHED_TMP_RENOVATE}"
26+
mkdir -p "${CACHED_TMP_RENOVATE}"
27+
du -sh "${CACHED_TMP_RENOVATE}"
28+
29+
echo "RENOVATE_PLATFORM=${RENOVATE_PLATFORM}. Set to github to test pull requests."
30+
# https://docs.renovatebot.com/modules/platform/local/
31+
# > Limitations: Branch creation is not supported
32+
# See related issue https://github.com/renovatebot/renovate/issues/3609 for further context
33+
if [[ ${RENOVATE_PLATFORM} == "github" ]]; then
34+
RENOVATE_REPOSITORIES="orange-cloudfoundry/$GIT_REPO"
35+
# See https://docs.renovatebot.com/self-hosted-configuration/#dryrun
36+
RENOVATE_DRY_RUN="${RENOVATE_DRY_RUN:-true}"
37+
echo "RENOVATE_DRY_RUN=${RENOVATE_DRY_RUN}. Set to false to actually create PRs."
38+
#Note: breaks with local platform, so only defined for gihtub
39+
RENOVATE_DRY_RUN_OPTS="--dry-run=${RENOVATE_DRY_RUN}"
40+
fi
41+
42+
#set -x
43+
# Usage: renovate [options] [repositories...]
44+
docker run \
45+
--rm \
46+
-u $(id -u):$(id -g) \
47+
-e LOG_LEVEL="$LOG_LEVEL" \
48+
-e RENOVATE_TOKEN="$GITHUB_TOKEN" \
49+
-e RENOVATE_GITHUB_COM_TOKEN="$GITHUB_TOKEN" \
50+
-e RENOVATE_ENABLED_MANAGERS="$RENOVATE_ENABLED_MANAGERS" \
51+
-e RENOVATE_INCLUDE_PATHS="$RENOVATE_INCLUDE_PATHS" \
52+
-e RENOVATE_BOT="$RENOVATE_BOT" \
53+
-v "$GIT_REPO:/tmp/local-git-repo" \
54+
--workdir /tmp/local-git-repo \
55+
ghcr.io/renovatebot/renovate \
56+
--platform=local \
57+
--semantic-commits=disabled \
58+
${RENOVATE_DRY_RUN_OPTS} \
59+
${RENOVATE_REPOSITORIES} |
60+
tee renovate.log
3361
# --dry-run="true" \
62+
63+
# hint that renovate.log is created by this script.
64+
ls -al renovate.log

0 commit comments

Comments
 (0)