Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects

Feature/ci poc

Merged Diego MENDEZ requested to merge feature/ci_poc into main
2 unresolved threads
Compare and
2 files
+ 67
0
Compare changes
  • Side-by-side
  • Inline

Files

+ 65
0
.default_deploy_rules:
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
when: never
- if: $CI_COMMIT_TAG
when: on_success
deploy-job:
stage: deploy
variables:
REGISTRY: https://code.europa.eu:4567/v2/
REGISTRY_IMAGE_NETBOX: code.europa.eu:4567/digit-c4/netbox-plugins
REGISTRY_IMAGE: $CI_REGISTRY_IMAGE
COMMIT_TAG: $CI_COMMIT_TAG
before_script:
# print variables
- echo $REGISTRY_IMAGE
- echo $COMMIT_TAG
# requirements
- mkdir -p "$CI_PROJECT_DIR/opt_tmp/"
- sudo apt install jq -y
script:
- |
# iterate over netbox's urls
for str1 in $(cat $NETBOX_LIST | jq -c '.[]')
do
# declare variables
NETBOX_URL=$(echo ${str1} | jq -r '.netbox')
NETBOX_TOKEN=$(echo ${str1} | jq -r '.token')
echo $NETBOX_URL
echo $NETBOX_TOKEN
# curl GET info from netbox
curl -X 'GET' "${NETBOX_URL}/api/plugins/docker/hosts/" \
-H 'accept: application/json; indent=4' \
-H "Authorization: Token ${NETBOX_TOKEN}" \
> "$CI_PROJECT_DIR/opt_tmp/res.json"
# iterate over VMs with a Netbox inside.
for str2 in $(cat "$CI_PROJECT_DIR/opt_tmp/res.json" | \
jq ".results[] | select(.images[].name | contains( \"${REGISTRY_IMAGE_NETBOX}\" )) | .id" | \
uniq)
do
# VMs with a netbox (host_id).
NETBOX_PLUGIN_HOST_ID="${str2}"
echo $NETBOX_PLUGIN_HOST_ID
# curl POST image to netbox
curl -X 'POST' "${NETBOX_URL}/api/plugins/docker/images/" \
-H 'accept: application/json; indent=4' \
-H 'Content-Type: application/json' \
-H "Authorization: Token ${NETBOX_TOKEN}" \
-d "{ \
\"name\": \"${REGISTRY_IMAGE}\", \
\"version\": \"${COMMIT_TAG}\", \
\"host\": \"${NETBOX_PLUGIN_HOST_ID}\", \
\"registry\": {\"serveraddress\": \"${REGISTRY}\"} \
}"
done
done
- echo "Ended."
after_script:
- rm -rf "$CI_PROJECT_DIR/opt_tmp/"
extends:
- .default_deploy_rules
Loading