Commit 4b5b23fc authored by Benguria Elguezabal, Gorka's avatar Benguria Elguezabal, Gorka
Browse files

adds updates

parent c61fab18
FROM alpine:3.9
RUN apk add --no-cache mysql-client curl
ENV MYSQL_DB_USER root
ENV MYSQL_DB_NAME backend
ENV MYSQL_DB_HOST mysql
ADD resources resources
ADD run.sh .
RUN chmod 750 run.sh
ENV PATH /:$PATH
CMD ["run.sh"]
\ No newline at end of file
-- MySQL dump 10.16 Distrib 10.1.30-MariaDB, for CYGWIN (x86_64)
--
-- Host: 127.0.0.1 Database: backend
-- ------------------------------------------------------
-- Server version 5.7.25
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Dumping data for table `Harvest`
--
LOCK TABLES `Harvest` WRITE;
/*!40000 ALTER TABLE `Harvest` DISABLE KEYS */;
INSERT INTO `Harvest` VALUES (1,100,'2019-04-12 12:29:35.833000','string'),(2,100,'2019-04-13 12:29:35.833000','string'),(3,100,'2019-04-14 12:29:35.833000','string'),(4,100,'2019-04-15 12:29:35.833000','string'),(5,100,'2019-04-16 12:29:35.833000','string'),(6,100,'2019-04-17 12:29:35.833000','string'),(7,100,'2019-04-18 12:29:35.833000','string'),(8,100,'2019-04-19 12:29:35.833000','string'),(9,100,'2019-04-20 12:29:35.833000','string'),(10,100,'2019-04-21 12:29:35.833000','string'),(11,100,'2019-04-22 12:29:35.833000','string');
/*!40000 ALTER TABLE `Harvest` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-04-22 23:01:38
#!/bin/sh
while ! mysqladmin ping -h $MYSQL_DB_HOST --silent; do
sleep 1
done
#wait for the frontend to be on
URL="http://backend:8080/v1/harvests"
echo "URL=$URL"
#$(curl --output /dev/null --silent --head --fail $URL) it does not work it returns 500
until $(curl --output /dev/null --silent --head --fail $URL); do
printf 'waiting for backend'
echo ''
sleep 5
done
mysql -u $MYSQL_DB_USER -f -h $MYSQL_DB_HOST -D $MYSQL_DB_NAME -P 3306 < /resources/sql/test-data.sql
# mysql -u $MYSQL_DB_USER -h $MYSQL_DB_HOST -D $MYSQL_DB_NAME < resources/sql/test-data.sql
if [ $? -eq 0 ]
then
echo "ALL SUCCESSFUL"
else
echo "ERROR"
fi
node_modules/
node/
bower_components/
\ No newline at end of file
/sources
\ No newline at end of file
FROM maven:3.5.4 as builder
ARG GIT_CREDENTIALS
ARG ARTIFACTORY_USE
ARG ARTIFACTORY_USER
ARG ARTIFACTORY_PASSWORD
ARG ARTIFACTORY_MAVEN_REPO
ARG IA_CLIENT_GIT_REF
ARG BACKEND_GIT_REF
ARG VERSION
COPY . /
RUN \
chmod 750 /*.sh && \
. /configartifactorymaven.sh && \
python /processSourcesJson.py && \
rm -rf /sources
FROM jetty:9.3.24-alpine
COPY --from=builder /app.war /var/lib/jetty/webapps/ROOT.war
USER root
RUN chown jetty:jetty /var/lib/jetty/webapps/ROOT.war
USER jetty
COPY /etc/dockertraining /etc/dockertraining
#!/bin/bash
sourcespath=$1
project=$2
echo "sourcespath $sourcespath"
echo "project $project"
#no config needed
#rm -rf ${xpref}
\ No newline at end of file
#!/bin/bash
if [ "$ARTIFACTORY_USE" != "Y" ]
then
echo "Without Artifactory"
else
echo "With Artifactory"
cp /settings.xml /usr/share/maven/conf/.
mkdir /root/.m2
cp /settings-security.xml /root/.m2/.
export MAVEN_USER="$ARTIFACTORY_USER"
export MASTER_PASSWORD="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
export MAVEN_MASTER_PASSWORD="$(mvn --encrypt-master-password $MASTER_PASSWORD)"
sed -i "s@\${.*}@$MAVEN_MASTER_PASSWORD@g" /root/.m2/settings-security.xml
export MAVEN_PASSWORD="$(mvn --encrypt-password $ARTIFACTORY_PASSWORD)"
fi
#rm -rf /root/.m2/repository/ #to test that it works
javax.persistence.jdbc.driver=com.mysql.cj.jdbc.Driver
javax.persistence.jdbc.url=jdbc:mysql://mysql:3306/backend
javax.persistence.jdbc.user=root
javax.persistence.jdbc.password=
ia.mathsapi.basepath=http://ia:8080/v1
\ No newline at end of file
#!/bin/bash
sourcespath=$1
project=$2
echo "sourcespath $sourcespath"
echo "project $project"
cp $sourcespath/$project/target/*.war /app.war || true
#!/bin/bash -e
if [ $# -lt 5 ]; then
echo "Arguments required: dockerRepoUrl projectPath gitRef mavenParams"
fi
dockerRepoUrl=$1
projectPath=$2
gitRef=$3
gitCredentials=$4
mavenParams=$5
repofix=$dockerRepoUrl
[ -d /sources ] || mkdir -p /sources
#phase 1 clone repo if necesary
repo_dir=`echo $dockerRepoUrl | sed 's%^.*/\([^/]*\)\.git$%\1%g'`
echo "Git repository: $dockerRepoUrl"
echo "repository dir: $repo_dir"
if [ "$VERSION" != "local" ] && [ ! -d /sources/$repo_dir/.git ]; then
echo "Enter to clone repo..."
rm -rf /sources/$repo_dir/* > /dev/null 2>&1 || true
if [[ ! -z "$gitCredentials" ]]; then
repofix=${repofix/https:\/\//https:\/\/$gitCredentials@}
fi
git clone "$repofix" /sources/$repo_dir
echo "repository cloned"
else
echo "repository found in local folder: $repo_dir"
fi
#phase 2 checkout right version
if [ "$VERSION" != "local" ] && [ ! -z "$gitRef" ]; then
echo "checking out: $gitRef"
git -C /sources/$repo_dir checkout $gitRef --force
fi
#phase 3 config
/config.sh /sources/$repo_dir $projectPath
#phase 4 mvn
#NOTE jhipster bower instalation requires a file /root/.bowerrc to be run as root
if [[ ! -z "$mavenParams" ]]; then
echo "maven execution: -f sources/$repo_dir/$projectPath/pom.xml $mavenParams"
mvn -f /sources/$repo_dir/$projectPath/pom.xml $mavenParams || true
#because jhister
fi
#phase 5 move app war
/moveappwar.sh /sources/$repo_dir $projectPath
import json
import subprocess
import os
with open('/sources.json', 'r') as handle:
parsed = json.load(handle)
for source in parsed['sources']:
subprocess.check_call(['/processSource.sh',source['source']['repo'],source['source']['path'],os.getenv(source['source']['git_ref'],''),os.getenv(source['source']['git_credentials'],''),source['source']['maven']])
<settingsSecurity>
<master>${env.MAVEN_MASTER_PASSWORD}</master>
</settingsSecurity>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
| This is the configuration file for Maven. It can be specified at two levels:
|
| 1. User Level. This settings.xml file provides configuration for a single user,
| and is normally provided in ${user.home}/.m2/settings.xml.
|
| NOTE: This location can be overridden with the CLI option:
|
| -s /path/to/user/settings.xml
|
| 2. Global Level. This settings.xml file provides configuration for all Maven
| users on a machine (assuming they're all using the same Maven
| installation). It's normally provided in
| ${maven.conf}/settings.xml.
|
| NOTE: This location can be overridden with the CLI option:
|
| -gs /path/to/global/settings.xml
|
| The sections in this sample file are intended to give you a running start at
| getting the most out of your Maven installation. Where appropriate, the default
| values (values used when the setting is not specified) are provided.
|
|-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- interactiveMode
| This will determine whether maven prompts you when it needs input. If set to false,
| maven will use a sensible default value, perhaps based on some other setting, for
| the parameter in question.
|
| Default: true
<interactiveMode>true</interactiveMode>
-->
<!-- offline
| Determines whether maven should attempt to connect to the network when executing a build.
| This will have an effect on artifact downloads, artifact deployment, and others.
|
| Default: false
<offline>false</offline>
-->
<!-- pluginGroups
| This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
| when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
| "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
|-->
<pluginGroups>
<!-- pluginGroup
| Specifies a further group identifier to use for plugin lookup.
<pluginGroup>com.your.plugins</pluginGroup>
-->
</pluginGroups>
<!-- proxies
| This is a list of proxies which can be used on this machine to connect to the network.
| Unless otherwise specified (by system property or command-line switch), the first proxy
| specification in this list marked as active will be used.
|-->
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
-->
</proxies>
<!-- servers
| This is a list of authentication profiles, keyed by the server-id used within the system.
| Authentication profiles can be used whenever maven must make a connection to a remote server.
|-->
<servers>
<server>
<username>${env.MAVEN_USER}</username>
<password>${env.MAVEN_PASSWORD}</password>
<id>central</id>
</server>
<server>
<username>${env.MAVEN_USER}</username>
<password>${env.MAVEN_PASSWORD}</password>
<id>snapshots</id>
</server>
<!-- server
| Specifies the authentication information to use when connecting to a particular server, identified by
| a unique name within the system (referred to by the 'id' attribute below).
|
| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
| used together.
|
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
-->
<!-- Another sample, using keys to authenticate.
<server>
<id>siteServer</id>
<privateKey>/path/to/private/key</privateKey>
<passphrase>optional; leave empty if not used.</passphrase>
</server>
-->
</servers>
<!-- mirrors
| This is a list of mirrors to be used in downloading artifacts from remote repositories.
|
| It works like this: a POM may declare a repository to use in resolving certain artifacts.
| However, this repository may have problems with heavy traffic at times, so people have mirrored
| it to several places.
|
| That repository definition will have a unique id, so we can create a mirror reference for that
| repository, to be used as an alternate download site. The mirror site will be the preferred
| server for that repository.
|-->
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors>
<!-- profiles
| This is a list of profiles which can be activated in a variety of ways, and which can modify
| the build process. Profiles provided in the settings.xml are intended to provide local machine-
| specific paths and repository locations which allow the build to work in the local environment.
|
| For example, if you have an integration testing plugin - like cactus - that needs to know where
| your Tomcat instance is installed, you can provide a variable here such that the variable is
| dereferenced during the build process to configure the cactus plugin.
|
| As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
| section of this document (settings.xml) - will be discussed later. Another way essentially
| relies on the detection of a system property, either matching a particular value for the property,
| or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
| value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
| Finally, the list of active profiles can be specified directly from the command line.
|
| NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
| repositories, plugin repositories, and free-form properties to be used as configuration
| variables for plugins in the POM.
|
|-->
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>${env.ARTIFACTORY_MAVEN_REPO}</name>
<url>${env.ARTIFACTORY_MAVEN_REPO}</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>${env.ARTIFACTORY_MAVEN_REPO}</name>
<url>${env.ARTIFACTORY_MAVEN_REPO}</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>${env.ARTIFACTORY_MAVEN_REPO}</name>
<url>${env.ARTIFACTORY_MAVEN_REPO}</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>${env.ARTIFACTORY_MAVEN_REPO}</name>
<url>${env.ARTIFACTORY_MAVEN_REPO}</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
<!-- profile
| Specifies a set of introductions to the build process, to be activated using one or more of the
| mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
| or the command line, profiles have to have an ID that is unique.
|
| An encouraged best practice for profile identification is to use a consistent naming convention
| for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
| This will make it more intuitive to understand what the set of introduced profiles is attempting
| to accomplish, particularly when you only have a list of profile id's for debug.
|
| This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
<profile>
<id>jdk-1.4</id>
<activation>
<jdk>1.4</jdk>
</activation>
<repositories>
<repository>
<id>jdk14</id>
<name>Repository for JDK 1.4 builds</name>
<url>http://www.myhost.com/maven/jdk14</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</repository>
</repositories>
</profile>
-->
<!--
| Here is another profile, activated by the system property 'target-env' with a value of 'dev',
| which provides a specific path to the Tomcat instance. To use this, your plugin configuration
| might hypothetically look like:
|
| ...
| <plugin>
| <groupId>org.myco.myplugins</groupId>
| <artifactId>myplugin</artifactId>
|
| <configuration>
| <tomcatLocation>${tomcatPath}</tomcatLocation>
| </configuration>
| </plugin>
| ...
|
| NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
| anything, you could just leave off the <value/> inside the activation-property.
|
<profile>
<id>env-dev</id>
<activation>
<property>
<name>target-env</name>
<value>dev</value>
</property>
</activation>
<properties>
<tomcatPath>/path/to/tomcat/instance</tomcatPath>
</properties>
</profile>
-->
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
<!-- activeProfiles
| List of profiles that are active for all builds.
|
<activeProfiles>
<activeProfile>alwaysActiveProfile</activeProfile>
<activeProfile>anotherAlwaysActiveProfile</activeProfile>
</activeProfiles>
-->
</settings>
{
"sources": [
{
"source": {
"repo": "https://git.code.tecnalia.com/public_dockerkubernetes/p04_1.git",
"path": "devops/ia.client",
"git_ref": "IA_CLIENT_GIT_REF",
"git_credentials": "GIT_CREDENTIALS",
"maven": "install -Dmaven.test.skip=true -DskipTests"
}
},
{
"source": {
"repo": "https://git.code.tecnalia.com/public_dockerkubernetes/p04_1.git",
"path": "devops/backend",
"git_ref": "BACKEND_GIT_REF",
"git_credentials": "GIT_CREDENTIALS",
"maven": "package war:war -Dmaven.test.skip=true -DskipTests"
}
}
]
}
\ No newline at end of file
.travis.yaml
.swagger-codegen-ignore
README.md
tox.ini
git_push.sh
test-requirements.txt
setup.py
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
venv/
.python-version
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
#Ipython Notebook
.ipynb_checkpoints