Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
caosdb-advanced-user-tools
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
caosdb-advanced-user-tools
Commits
76122225
Commit
76122225
authored
5 years ago
by
Henrik tom Wörden
Browse files
Options
Downloads
Patches
Plain Diff
MAINT: fix registry usage
parent
9fbd831f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.docker-base/Dockerfile
+25
-0
25 additions, 0 deletions
.docker-base/Dockerfile
.docker-base/wait-for-it.sh
+182
-0
182 additions, 0 deletions
.docker-base/wait-for-it.sh
.gitlab-ci.yml
+13
-8
13 additions, 8 deletions
.gitlab-ci.yml
with
220 additions
and
8 deletions
.docker-base/Dockerfile
0 → 100644
+
25
−
0
View file @
76122225
# Use docker as parent image
FROM
docker:19.03.0
# http://bugs.python.org/issue19846
ENV
LANG C.UTF-8
# install dependencies
RUN
apk add
--no-cache
py-pip python-dev py3-pip python3 python3-dev gcc make
\
git bash curl gettext py3-requests
RUN
apk add
--no-cache
libffi-dev openssl-dev libc-dev libxslt libxslt-dev
\
libxml2 libxml2-dev
RUN
pip
install
docker-compose
==
1.25
# Script for waiting on LA server
COPY
wait-for-it.sh /opt/caosdb/wait-for-it.sh
# Runtime settings
WORKDIR
/opt/caosdb
RUN
mkdir
-p
/opt/caosdb/build_docker/
CMD
/bin/bash
# python client
ADD
https://gitlab.com/api/v4/projects/13656973/repository/branches/dev \
pylib_version.json
RUN
pip3
install
git+https://gitlab.com/caosdb/caosdb-pylib
This diff is collapsed.
Click to expand it.
.docker-base/wait-for-it.sh
0 → 100755
+
182
−
0
View file @
76122225
#!/usr/bin/env bash
# License:
# From https://github.com/vishnubob/wait-for-it
# The MIT License (MIT)
# Use this script to test if a given TCP host/port are available
WAITFORIT_cmdname
=
${
0
##*/
}
echoerr
()
{
if
[[
$WAITFORIT_QUIET
-ne
1
]]
;
then
echo
"
$@
"
1>&2
;
fi
}
usage
()
{
cat
<<
USAGE
>&2
Usage:
$WAITFORIT_cmdname
host:port [-s] [-t timeout] [-- command args]
-h HOST | --host=HOST Host or IP under test
-p PORT | --port=PORT TCP port under test
Alternatively, you specify the host and port as host:port
-s | --strict Only execute subcommand if the test succeeds
-q | --quiet Don't output any status messages
-t TIMEOUT | --timeout=TIMEOUT
Timeout in seconds, zero for no timeout
-- COMMAND ARGS Execute command with args after the test finishes
USAGE
exit
1
}
wait_for
()
{
if
[[
$WAITFORIT_TIMEOUT
-gt
0
]]
;
then
echoerr
"
$WAITFORIT_cmdname
: waiting
$WAITFORIT_TIMEOUT
seconds for
$WAITFORIT_HOST
:
$WAITFORIT_PORT
"
else
echoerr
"
$WAITFORIT_cmdname
: waiting for
$WAITFORIT_HOST
:
$WAITFORIT_PORT
without a timeout"
fi
WAITFORIT_start_ts
=
$(
date
+%s
)
while
:
do
if
[[
$WAITFORIT_ISBUSY
-eq
1
]]
;
then
nc
-z
$WAITFORIT_HOST
$WAITFORIT_PORT
WAITFORIT_result
=
$?
else
(
echo
>
/dev/tcp/
$WAITFORIT_HOST
/
$WAITFORIT_PORT
)
>
/dev/null 2>&1
WAITFORIT_result
=
$?
fi
if
[[
$WAITFORIT_result
-eq
0
]]
;
then
WAITFORIT_end_ts
=
$(
date
+%s
)
echoerr
"
$WAITFORIT_cmdname
:
$WAITFORIT_HOST
:
$WAITFORIT_PORT
is available after
$((
WAITFORIT_end_ts
-
WAITFORIT_start_ts
))
seconds"
break
fi
sleep
1
done
return
$WAITFORIT_result
}
wait_for_wrapper
()
{
# In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
if
[[
$WAITFORIT_QUIET
-eq
1
]]
;
then
timeout
$WAITFORIT_BUSYTIMEFLAG
$WAITFORIT_TIMEOUT
$0
--quiet
--child
--host
=
$WAITFORIT_HOST
--port
=
$WAITFORIT_PORT
--timeout
=
$WAITFORIT_TIMEOUT
&
else
timeout
$WAITFORIT_BUSYTIMEFLAG
$WAITFORIT_TIMEOUT
$0
--child
--host
=
$WAITFORIT_HOST
--port
=
$WAITFORIT_PORT
--timeout
=
$WAITFORIT_TIMEOUT
&
fi
WAITFORIT_PID
=
$!
trap
"kill -INT -
$WAITFORIT_PID
"
INT
wait
$WAITFORIT_PID
WAITFORIT_RESULT
=
$?
if
[[
$WAITFORIT_RESULT
-ne
0
]]
;
then
echoerr
"
$WAITFORIT_cmdname
: timeout occurred after waiting
$WAITFORIT_TIMEOUT
seconds for
$WAITFORIT_HOST
:
$WAITFORIT_PORT
"
fi
return
$WAITFORIT_RESULT
}
# process arguments
while
[[
$#
-gt
0
]]
do
case
"
$1
"
in
*
:
*
)
WAITFORIT_hostport
=(
${
1
//
:/
}
)
WAITFORIT_HOST
=
${
WAITFORIT_hostport
[0]
}
WAITFORIT_PORT
=
${
WAITFORIT_hostport
[1]
}
shift
1
;;
--child
)
WAITFORIT_CHILD
=
1
shift
1
;;
-q
|
--quiet
)
WAITFORIT_QUIET
=
1
shift
1
;;
-s
|
--strict
)
WAITFORIT_STRICT
=
1
shift
1
;;
-h
)
WAITFORIT_HOST
=
"
$2
"
if
[[
$WAITFORIT_HOST
==
""
]]
;
then
break
;
fi
shift
2
;;
--host
=
*
)
WAITFORIT_HOST
=
"
${
1
#*=
}
"
shift
1
;;
-p
)
WAITFORIT_PORT
=
"
$2
"
if
[[
$WAITFORIT_PORT
==
""
]]
;
then
break
;
fi
shift
2
;;
--port
=
*
)
WAITFORIT_PORT
=
"
${
1
#*=
}
"
shift
1
;;
-t
)
WAITFORIT_TIMEOUT
=
"
$2
"
if
[[
$WAITFORIT_TIMEOUT
==
""
]]
;
then
break
;
fi
shift
2
;;
--timeout
=
*
)
WAITFORIT_TIMEOUT
=
"
${
1
#*=
}
"
shift
1
;;
--
)
shift
WAITFORIT_CLI
=(
"
$@
"
)
break
;;
--help
)
usage
;;
*
)
echoerr
"Unknown argument:
$1
"
usage
;;
esac
done
if
[[
"
$WAITFORIT_HOST
"
==
""
||
"
$WAITFORIT_PORT
"
==
""
]]
;
then
echoerr
"Error: you need to provide a host and port to test."
usage
fi
WAITFORIT_TIMEOUT
=
${
WAITFORIT_TIMEOUT
:-
15
}
WAITFORIT_STRICT
=
${
WAITFORIT_STRICT
:-
0
}
WAITFORIT_CHILD
=
${
WAITFORIT_CHILD
:-
0
}
WAITFORIT_QUIET
=
${
WAITFORIT_QUIET
:-
0
}
# check to see if timeout is from busybox?
WAITFORIT_TIMEOUT_PATH
=
$(
type
-p
timeout
)
WAITFORIT_TIMEOUT_PATH
=
$(
realpath
$WAITFORIT_TIMEOUT_PATH
2>/dev/null
||
readlink
-f
$WAITFORIT_TIMEOUT_PATH
)
if
[[
$WAITFORIT_TIMEOUT_PATH
=
~
"busybox"
]]
;
then
WAITFORIT_ISBUSY
=
1
WAITFORIT_BUSYTIMEFLAG
=
"-t"
else
WAITFORIT_ISBUSY
=
0
WAITFORIT_BUSYTIMEFLAG
=
""
fi
if
[[
$WAITFORIT_CHILD
-gt
0
]]
;
then
wait_for
WAITFORIT_RESULT
=
$?
exit
$WAITFORIT_RESULT
else
if
[[
$WAITFORIT_TIMEOUT
-gt
0
]]
;
then
wait_for_wrapper
WAITFORIT_RESULT
=
$?
else
wait_for
WAITFORIT_RESULT
=
$?
fi
fi
if
[[
$WAITFORIT_CLI
!=
""
]]
;
then
if
[[
$WAITFORIT_RESULT
-ne
0
&&
$WAITFORIT_STRICT
-eq
1
]]
;
then
echoerr
"
$WAITFORIT_cmdname
: strict mode, refusing to execute subprocess"
exit
$WAITFORIT_RESULT
fi
exec
"
${
WAITFORIT_CLI
[@]
}
"
else
exit
$WAITFORIT_RESULT
fi
This diff is collapsed.
Click to expand it.
.gitlab-ci.yml
+
13
−
8
View file @
76122225
...
...
@@ -19,7 +19,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
variables
:
CI_REGISTRY_IMAGE
:
$CI_REGISTRY/caosdb/caosdb-advanced-user-tools/testenv
CI_REGISTRY_IMAGE
:
$CI_REGISTRY/caosdb/caosdb-advanced-user-tools/testenv:latest
CI_REGISTRY_IMAGE_BASE
:
$CI_REGISTRY/caosdb/caosdb-advanced-user-tools/base:latest
# When using dind, it's wise to use the overlayfs driver for
# improved performance.
...
...
@@ -35,7 +36,7 @@ stages:
test
:
tags
:
[
docker
]
stage
:
test
image
:
$CI_REGISTRY_I
NDISCALE/caosdb/src/caosdb-deploy/caosdb-run-base:latest
image
:
$CI_REGISTRY_I
MAGE_BASE
script
:
-
if [[ "$CAOSDB_TAG" == "" ]]; then
CAOSDB_TAG=dev-latest;
...
...
@@ -46,7 +47,7 @@ test:
-
time docker load < /image-cache/caosdb.tar ||
true
-
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
-
docker login -u $INDISCALE_USER -p $INDISCALE_TOKEN $CI_REGISTRY_INDISCALE
-
time docker pull $CI_REGISTRY_IMAGE
:latest
-
time docker pull $CI_REGISTRY_IMAGE
-
time docker pull mariadb:10.4
-
time docker pull $CI_REGISTRY/caosdb:$CAOSDB_TAG
-
EXEPATH=`pwd` CAOSDB_TAG=$CAOSDB_TAG docker-compose
...
...
@@ -79,14 +80,18 @@ build-testenv:
# use here general latest or specific branch latest...
-
docker build
--file .docker/Dockerfile
-t $CI_REGISTRY_IMAGE:latest .
-
docker push $CI_REGISTRY_IMAGE:latest
-
docker save $CI_REGISTRY_IMAGE:latest > /image-cache/caosdb-advanced-testenv.tar
-t $CI_REGISTRY_IMAGE .
-
docker push $CI_REGISTRY_IMAGE
-
docker save $CI_REGISTRY_IMAGE > /image-cache/caosdb-advanced-testenv.tar
-
docker build
--file .docker-base/Dockerfile
-t $CI_REGISTRY_IMAGE_BASE .
-
docker push $CI_REGISTRY_IMAGE_BASE
cert
:
tags
:
[
docker
]
stage
:
cert
image
:
$CI_REGISTRY_IMAGE
:latest
image
:
$CI_REGISTRY_IMAGE
artifacts
:
paths
:
-
.docker/cert/
...
...
@@ -97,7 +102,7 @@ cert:
style
:
tags
:
[
docker
]
stage
:
style
image
:
$CI_REGISTRY_IMAGE
:latest
image
:
$CI_REGISTRY_IMAGE
script
:
-
autopep8 -r --diff --exit-code .
allow_failure
:
true
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment