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/.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/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f2edbb7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM iofog/java-ubuntu-x86:8u211 + +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 && \ + 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" ] diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..381de97 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,69 @@ +trigger: + tags: + include: + - v.* + branches: + include: + - develop + - master + paths: + exclude: + - README.md + +pr: + - master + +pool: + vmImage: 'Ubuntu-16.04' + +variables: + repository: 'focal-freedom-236620/connector' + 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 and push docker' + inputs: + containerRegistry: 'Edgeworx GCP' + repository: $(repository) + command: 'buildAndPush' + Dockerfile: 'Dockerfile' + tags: | + $(commit) + $(type) + latest + + - 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' 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 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