From 0d1a16dc0777cb2843ec04cba4602d931e2bfc23 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Fri, 26 Apr 2019 00:43:01 -0700 Subject: [PATCH 1/7] Dockerfile --- Dockerfile | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..29281b5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM java:8u111-jdk + +ARG TAG + +RUN curl -s https://packagecloud.io/install/repositories/iofog/iofog-connector/script.deb.sh | bash && \ + apt-get install sudo iofog-connector$TAG && \ + echo "service iofog-connector start && tail -f /dev/null" >> /start.sh && \ + echo '{ "ports": [ "6000-9999", "30000-49999" ], "exclude": [], "broker":12345, "address":"127.0.0.1", "dev":true }' > /etc/iofog-connector/iofog-connector.conf + +CMD [ "sh", "/start.sh" ] \ No newline at end of file From 180264b96042bcd527931ae71c9ce1e837b1f4a2 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Fri, 26 Apr 2019 00:43:39 -0700 Subject: [PATCH 2/7] Deploy docker images --- .travis.yml | 38 +++++++++++++++++++++++++++++++------- scripts/deploy.sh | 1 + 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2c02c0f..969b34f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,9 @@ notifications: for commit (<%{compare_url}|%{commit}>) on branch `%{branch}`. - 'Execution time: *%{duration}*' - 'Message: %{message}' +env: + global: + - COMMIT=${TRAVIS_COMMIT::8} stages: - name: build if: type = pull_request @@ -30,22 +33,43 @@ jobs: script: - export VERSION=`xml_grep --cond='project/version' pom.xml --text_only` - export ID=-dev - - bash scripts/packaging.sh - - bash scripts/deploy.sh $DEV_MACHINE_PASSWORD $DEV_MACHINE_USERNAME $DEV_MACHINE_IP + - | + bash scripts/packaging.sh && + bash scripts/deploy.sh $DEV_MACHINE_PASSWORD $DEV_MACHINE_USERNAME $DEV_MACHINE_IP && + bash scripts/deploy.sh $JRC_MACHINE_PASSWORD $JRC_MACHINE_USERNAME $JRC_MACHINE_IP && + bash scripts/deploy.sh $ATTINAD_MACHINE_PASSWORD $ATTINAD_MACHINE_USERNAME $ATTINAD_MACHINE_IP && + docker build -t iofog/connector-develop:latest --build-arg TAG=$ID . && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/connector-develop:latest && + docker tag iofog/connector-develop:latest iofog/connector-develop:$COMMIT && + docker push iofog/connector-develop:$COMMIT || travis_terminate 1 - stage: pre_release before_install: - sudo apt-get install sshpass xml-twig-tools script: - - export VERSION=`xml_grep --cond='project/version' pom.xml --text_only` - - export ID=-prerelease - - bash scripts/packaging.sh - - bash scripts/deploy.sh $PREPROD_MACHINE_PASSWORD $PREPROD_MACHINE_USERNAME $PREPROD_MACHINE_IP + - | + export VERSION=`xml_grep --cond='project/version' pom.xml --text_only` && + export ID=-prerelease + - | + bash scripts/packaging.sh && + bash scripts/deploy.sh $PREPROD_MACHINE_PASSWORD $PREPROD_MACHINE_USERNAME $PREPROD_MACHINE_IP && + docker build -t iofog/connector:rc . && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/connector:rc && + docker tag iofog/connector:rc iofog/connector:rc-$VERSION && + docker push iofog/connector:rc-$VERSION || travis_terminate 1 - stage: release before_install: - sudo apt-get install sshpass xml-twig-tools script: - export VERSION=`xml_grep --cond='project/version' pom.xml --text_only` - - bash scripts/packaging.sh + - | + bash scripts/packaging.sh && + docker build -t iofog/connector:latest . && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/connector:latest && + docker tag iofog/connector:latest iofog/connector:$VERSION && + docker push iofog/connector:$VERSION || travis_terminate 1 before_deploy: - git config --global user.name "${GH_USERNAME}"; - git config credential.helper "store --file=.git/credentials"; diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 0ccd02e..95d37ff 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash +set -e PASSWORD=$1 USER=$2 From 2362224669704ad423b9b9812b089461f291cc38 Mon Sep 17 00:00:00 2001 From: Rashmi Modhwadia Date: Thu, 2 May 2019 13:59:58 +1200 Subject: [PATCH 3/7] add to azure ci --- .gitignore | 4 ++ Dockerfile | 32 +++++++--- azure-pipelines.yml | 55 ++++++++++++++++++ .../etc/init.d/iofog-connector | 0 .../etc/iofog-connector/configs_new.json | 0 .../iofog-connector/iofog-connector_new.conf | 0 .../iofog-connector-packaging-rpm}/remove.sh | 0 .../iofog-connector-packaging-rpm}/rpm.sh | 0 .../iofog-connector-packaging-rpm}/upgrade.sh | 0 .../usr/bin/iofog-connector | 0 .../iofog-connector-packaging}/debian.sh | 0 .../etc/init.d/iofog-connector | 0 .../etc/iofog-connector/configs_new.json | 0 .../iofog-connector/iofog-connector_new.conf | 0 .../iofog-connector-packaging}/remove.sh | 0 .../iofog-connector-packaging}/upgrade.sh | 0 .../usr/bin/iofog-connector | 0 .../iofog-connector-dev/changelog.Debian.gz | Bin 18 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 .gitignore create mode 100644 azure-pipelines.yml rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/etc/init.d/iofog-connector (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/etc/iofog-connector/configs_new.json (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/etc/iofog-connector/iofog-connector_new.conf (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/remove.sh (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/rpm.sh (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/upgrade.sh (100%) rename {iofog-connector-packaging-rpm => packaging/iofog-connector-packaging-rpm}/usr/bin/iofog-connector (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/debian.sh (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/etc/init.d/iofog-connector (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/etc/iofog-connector/configs_new.json (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/etc/iofog-connector/iofog-connector_new.conf (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/remove.sh (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/upgrade.sh (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/usr/bin/iofog-connector (100%) rename {iofog-connector-packaging => packaging/iofog-connector-packaging}/usr/share/doc/iofog-connector-dev/changelog.Debian.gz (100%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f807d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea/ +/*/*.iml +*.iml +*/target/ diff --git a/Dockerfile b/Dockerfile index 29281b5..c73ae19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,28 @@ -FROM java:8u111-jdk +FROM iofog/java-ubuntu-x86:8u211 -ARG TAG +ADD packaging/iofog-connector-packaging /etc +ADD packaging/iofog-connector-packaging /usr +ADD daemon/target/iofog-connector-daemon-jar-with-dependencies.jar /usr/bin/iofog-connectord.jar +ADD client/target/iofog-connector-client-jar-with-dependencies.jar /usr/bin/iofog-connector.jar -RUN curl -s https://packagecloud.io/install/repositories/iofog/iofog-connector/script.deb.sh | bash && \ - apt-get install sudo iofog-connector$TAG && \ - echo "service iofog-connector start && tail -f /dev/null" >> /start.sh && \ - echo '{ "ports": [ "6000-9999", "30000-49999" ], "exclude": [], "broker":12345, "address":"127.0.0.1", "dev":true }' > /etc/iofog-connector/iofog-connector.conf +RUN apt-get update && \ + apt-get install -y sudo && \ + useradd -r -U -s /usr/bin/nologin iofog-connector && \ + usermod -aG root,sudo iofog-connector && \ + mv /etc/iofog-connector/configs_new.json /etc/iofog-connector/configs.json && \ + mv /etc/iofog-connector/iofog-connector_new.conf /etc/iofog-connector/iofog-connector.conf && \ + mkdir -p /var/log/iofog-connector && \ + chown -R :iofog-connector /etc/iofog-connector && \ + chown -R :iofog-connector /var/log/iofog-connector && \ + chmod 774 -R /etc/iofog-connector && \ + chmod 774 -R /var/log/iofog-connector && \ + mv /dev/random /dev/random.real && \ + ln -s /dev/urandom /dev/random && \ + chmod 774 /etc/init.d/iofog-connector && \ + chmod 754 /usr/bin/iofog-connector && \ + chown :iofog-connector /usr/bin/iofog-connector && \ + update-rc.d iofog-connector defaults && \ + ln -sf /usr/bin/iofog-connector /usr/local/bin/iofog-connector && \ + echo "service iofog-connector start && tail -f /dev/null" >> /start.sh -CMD [ "sh", "/start.sh" ] \ No newline at end of file +CMD [ "sh", "/start.sh" ] diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..ad69d57 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,55 @@ +trigger: + tags: + include: + - v.* + branches: + include: + - develop + - master + paths: + exclude: + - README.md + +pr: + - master + +pool: + vmImage: 'Ubuntu-16.04' + +variables: + repository: 'focal-freedom-236620/controller' + type: $(Build.SourceBranchName) + commit: $(Build.SourceVersion) + +steps: + + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + mavenOptions: '-Xmx3072m' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + goals: 'package' + + - script: | + echo " test" + displayName: 'tests' + + - task: Docker@2 + displayName: 'build dev docker' + inputs: + containerRegistry: 'Edgeworx GCP' + repository: $(repository) + command: 'buildAndPush' + Dockerfile: 'Dockerfile' + tags: | + $(commit) + $(type) + latest + + - script: | + echo "mvn test" + displayName: 'api tests' diff --git a/iofog-connector-packaging-rpm/etc/init.d/iofog-connector b/packaging/iofog-connector-packaging-rpm/etc/init.d/iofog-connector similarity index 100% rename from iofog-connector-packaging-rpm/etc/init.d/iofog-connector rename to packaging/iofog-connector-packaging-rpm/etc/init.d/iofog-connector diff --git a/iofog-connector-packaging-rpm/etc/iofog-connector/configs_new.json b/packaging/iofog-connector-packaging-rpm/etc/iofog-connector/configs_new.json similarity index 100% rename from iofog-connector-packaging-rpm/etc/iofog-connector/configs_new.json rename to packaging/iofog-connector-packaging-rpm/etc/iofog-connector/configs_new.json diff --git a/iofog-connector-packaging-rpm/etc/iofog-connector/iofog-connector_new.conf b/packaging/iofog-connector-packaging-rpm/etc/iofog-connector/iofog-connector_new.conf similarity index 100% rename from iofog-connector-packaging-rpm/etc/iofog-connector/iofog-connector_new.conf rename to packaging/iofog-connector-packaging-rpm/etc/iofog-connector/iofog-connector_new.conf diff --git a/iofog-connector-packaging-rpm/remove.sh b/packaging/iofog-connector-packaging-rpm/remove.sh similarity index 100% rename from iofog-connector-packaging-rpm/remove.sh rename to packaging/iofog-connector-packaging-rpm/remove.sh diff --git a/iofog-connector-packaging-rpm/rpm.sh b/packaging/iofog-connector-packaging-rpm/rpm.sh similarity index 100% rename from iofog-connector-packaging-rpm/rpm.sh rename to packaging/iofog-connector-packaging-rpm/rpm.sh diff --git a/iofog-connector-packaging-rpm/upgrade.sh b/packaging/iofog-connector-packaging-rpm/upgrade.sh similarity index 100% rename from iofog-connector-packaging-rpm/upgrade.sh rename to packaging/iofog-connector-packaging-rpm/upgrade.sh diff --git a/iofog-connector-packaging-rpm/usr/bin/iofog-connector b/packaging/iofog-connector-packaging-rpm/usr/bin/iofog-connector similarity index 100% rename from iofog-connector-packaging-rpm/usr/bin/iofog-connector rename to packaging/iofog-connector-packaging-rpm/usr/bin/iofog-connector diff --git a/iofog-connector-packaging/debian.sh b/packaging/iofog-connector-packaging/debian.sh similarity index 100% rename from iofog-connector-packaging/debian.sh rename to packaging/iofog-connector-packaging/debian.sh diff --git a/iofog-connector-packaging/etc/init.d/iofog-connector b/packaging/iofog-connector-packaging/etc/init.d/iofog-connector similarity index 100% rename from iofog-connector-packaging/etc/init.d/iofog-connector rename to packaging/iofog-connector-packaging/etc/init.d/iofog-connector diff --git a/iofog-connector-packaging/etc/iofog-connector/configs_new.json b/packaging/iofog-connector-packaging/etc/iofog-connector/configs_new.json similarity index 100% rename from iofog-connector-packaging/etc/iofog-connector/configs_new.json rename to packaging/iofog-connector-packaging/etc/iofog-connector/configs_new.json diff --git a/iofog-connector-packaging/etc/iofog-connector/iofog-connector_new.conf b/packaging/iofog-connector-packaging/etc/iofog-connector/iofog-connector_new.conf similarity index 100% rename from iofog-connector-packaging/etc/iofog-connector/iofog-connector_new.conf rename to packaging/iofog-connector-packaging/etc/iofog-connector/iofog-connector_new.conf diff --git a/iofog-connector-packaging/remove.sh b/packaging/iofog-connector-packaging/remove.sh similarity index 100% rename from iofog-connector-packaging/remove.sh rename to packaging/iofog-connector-packaging/remove.sh diff --git a/iofog-connector-packaging/upgrade.sh b/packaging/iofog-connector-packaging/upgrade.sh similarity index 100% rename from iofog-connector-packaging/upgrade.sh rename to packaging/iofog-connector-packaging/upgrade.sh diff --git a/iofog-connector-packaging/usr/bin/iofog-connector b/packaging/iofog-connector-packaging/usr/bin/iofog-connector similarity index 100% rename from iofog-connector-packaging/usr/bin/iofog-connector rename to packaging/iofog-connector-packaging/usr/bin/iofog-connector diff --git a/iofog-connector-packaging/usr/share/doc/iofog-connector-dev/changelog.Debian.gz b/packaging/iofog-connector-packaging/usr/share/doc/iofog-connector-dev/changelog.Debian.gz similarity index 100% rename from iofog-connector-packaging/usr/share/doc/iofog-connector-dev/changelog.Debian.gz rename to packaging/iofog-connector-packaging/usr/share/doc/iofog-connector-dev/changelog.Debian.gz From 5126124b5729cfc09e8bb5a134f1060b82bb1d0f Mon Sep 17 00:00:00 2001 From: Rashmi Modhwadia Date: Thu, 2 May 2019 14:19:29 +1200 Subject: [PATCH 4/7] fix package --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index c73ae19..f2edbb7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ FROM iofog/java-ubuntu-x86:8u211 -ADD packaging/iofog-connector-packaging /etc -ADD packaging/iofog-connector-packaging /usr -ADD daemon/target/iofog-connector-daemon-jar-with-dependencies.jar /usr/bin/iofog-connectord.jar -ADD client/target/iofog-connector-client-jar-with-dependencies.jar /usr/bin/iofog-connector.jar +COPY packaging/iofog-connector-packaging/etc /etc +COPY packaging/iofog-connector-packaging/usr /usr +COPY daemon/target/iofog-connector-daemon-jar-with-dependencies.jar /usr/bin/iofog-connectord.jar +COPY client/target/iofog-connector-client-jar-with-dependencies.jar /usr/bin/iofog-connector.jar RUN apt-get update && \ apt-get install -y sudo && \ From b526da0021880abeb4bd780537b95532c3dce865 Mon Sep 17 00:00:00 2001 From: Rashmi Modhwadia Date: Thu, 2 May 2019 14:24:51 +1200 Subject: [PATCH 5/7] correct image --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ad69d57..5173bd8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,7 @@ pool: vmImage: 'Ubuntu-16.04' variables: - repository: 'focal-freedom-236620/controller' + repository: 'focal-freedom-236620/connector' type: $(Build.SourceBranchName) commit: $(Build.SourceVersion) From f0539aa41adb42b21937f3959b8239c0aa93d745 Mon Sep 17 00:00:00 2001 From: Rashmi Modhwadia Date: Thu, 2 May 2019 15:16:34 +1200 Subject: [PATCH 6/7] artefacts --- azure-pipelines.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5173bd8..9227b60 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -53,3 +53,17 @@ steps: - script: | echo "mvn test" displayName: 'api tests' + + - task: CopyFiles@2 + inputs: + SourceFolder: $(System.DefaultWorkingDirectory) + TargetFolder: $(Build.ArtifactStagingDirectory) + Contents: | + daemon/target/iofog-connector-daemon-jar-with-dependencies.jar + client/target/iofog-connector-client-jar-with-dependencies.jar + OverWrite: true + + - task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: 'connector' From aa80cab64c7dec5d645d5dd036b8beedc9511d32 Mon Sep 17 00:00:00 2001 From: Rashmi Modhwadia Date: Thu, 2 May 2019 17:56:08 +1200 Subject: [PATCH 7/7] name --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9227b60..381de97 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -39,7 +39,7 @@ steps: displayName: 'tests' - task: Docker@2 - displayName: 'build dev docker' + displayName: 'build and push docker' inputs: containerRegistry: 'Edgeworx GCP' repository: $(repository)