Skip to content
Snippets Groups Projects
Commit b934c564 authored by istmxrein's avatar istmxrein
Browse files

update ci to release binaries

parent 6959b092
No related branches found
No related tags found
1 merge request!2First working version that retrieves the real state from the device
Pipeline #93171 failed
stages:
- build
- deploy
.default_rules_dev: .default_rules_dev:
rules: rules:
- if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_PIPELINE_SOURCE == "schedule"
when: never when: never
- if: $CI_COMMIT_BRANCH == "develop" - if: $CI_COMMIT_BRANCH == "develop"
variables: variables:
DOCKER_SERVER_IP: "syslab-cube13-1.fbi.h-da.de" SERVER_IP: "syslab-cube13-1.fbi.h-da.de"
TAG: "$CI_REGISTRY_IMAGE:develop"
.default_rules_prod: .default_rules_prod:
rules: rules:
...@@ -18,63 +12,46 @@ stages: ...@@ -18,63 +12,46 @@ stages:
when: never when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables: variables:
DOCKER_SERVER_IP: "syslab-cube13-1.fbi.h-da.de" SERVER_IP: "syslab-cube13-1.fbi.h-da.de"
TAG: "$CI_REGISTRY_IMAGE:latest"
.build_template: &build_template variables:
image: docker:latest GOPATH: "${CI_PROJECT_DIR}/.cache"
variables: GOARCH: "amd64 arm64"
DOCKER_TLS_CERTDIR: "/certs" OSS: "linux freebsd"
services:
- name: docker:dind
command:
- "--experimental"
tags:
- buildx
retry: 2
before_script:
- mkdir -p ~/.docker/cli-plugins
- wget -q -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
- chmod a+x ~/.docker/cli-plugins/docker-buildx
- docker context create builder$CI_JOB_ID
- docker buildx create builder$CI_JOB_ID --use
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
# build and test stages, unrelated to this article
.deploy_tmpl: &deploy_tmpl build:
image: tiangolo/docker-with-compose image: golang:1.17
before_script:
- apk add --no-cache openssl
- unset DOCKER_HOST
- install -m 700 -d ~/.ssh
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- docker context create --docker "host=ssh://${SSH_USER}@${DOCKER_SERVER_IP}" server01
- docker context use server01
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- echo "IMAGE=${TAG}" > .env
build:image:
extends: .build_template
stage: build stage: build
script: script:
- docker buildx build --platform linux/amd64,linux/arm64 -t $TAG -f Dockerfile --push . - |
for os in ${OSS}; do
for arch in ${GOARCH}; do
GOOS=$os GOARCH=$arch make cross
done
done
- apt-get -qq -y install curl
- /bin/sh mkrel.sh gnmitarget
artifacts:
paths:
- gnmitarget_*
rules: rules:
- !reference [.default_rules_dev, rules] - !reference [.default_rules_dev, rules]
- !reference [.default_rules_prod, rules] - !reference [.default_rules_prod, rules]
- if: $CI_COMMIT_TAG
deploy:target: release:
extends: .deploy_tmpl image: golang:1.17
stage: deploy stage: release
before_script:
- apt-get update -qq && apt-get -y -qq install jq xxd curl
script: script:
- ls -al - /bin/sh mkrel.sh gnmitarget
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 rm -f -s artifacts:
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 pull expire_in: 365 days
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 up -d paths:
- gnmitarget_*
rules: rules:
- !reference [.default_rules_dev, rules] - if: $CI_COMMIT_TAG
- !reference [.default_rules_prod, rules]
.build_template: &build_template
image: docker:latest
variables:
DOCKER_TLS_CERTDIR: "/certs"
services:
- name: docker:dind
command:
- "--experimental"
tags:
- buildx
retry: 2
before_script:
- mkdir -p ~/.docker/cli-plugins
- wget -q -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
- chmod a+x ~/.docker/cli-plugins/docker-buildx
- docker context create builder$CI_JOB_ID
- docker buildx create builder$CI_JOB_ID --use
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
.deploy_tmpl: &deploy_tmpl
image: tiangolo/docker-with-compose
before_script:
- apk add --no-cache openssl
- unset DOCKER_HOST
- install -m 700 -d ~/.ssh
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- docker context create --docker "host=ssh://${SSH_USER}@${DOCKER_SERVER_IP}" server01
- docker context use server01
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- echo "IMAGE=${TAG}" > .env
build:image:
extends: .build_template
stage: build
script:
- docker buildx build --platform linux/amd64,linux/arm64 -t $TAG -f Dockerfile --push .
rules:
- !reference [.default_rules_dev, rules]
- !reference [.default_rules_prod, rules]
deploy:target:
extends: .deploy_tmpl
stage: deploy
script:
- ls -al
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 rm -f -s
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 pull
- docker-compose -p target-${CI_COMMIT_BRANCH} --context server01 up -d
rules:
- !reference [.default_rules_dev, rules]
- !reference [.default_rules_prod, rules]
version: "3.8"
services:
gnmi-target:
image: ${IMAGE}
volumes:
- "/proc:/host/proc"
- "/sys:/host/sys"
- "/etc:/host/etc"
- "config-data:/data"
privileged: true
network_mode: "host"
volumes:
config-data:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment