Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tooling to enable quick release testing #129

Merged
merged 1 commit into from
Jun 30, 2017

Conversation

amcp
Copy link

@amcp amcp commented Feb 20, 2017

This change adds a command line tool that ideally will allow any combination of tests to be run. All you have to do is define the command line arguments to maven for each test run and execute the CLI as per the README.md. Currently, the maximum number of parallel actions (build steps) in a stage is 5, so I split up the various test targets into groups of up to four builds.

Status of builds in j1:

  • bdb - Passed in 15 min 10 secs
  • hadoop-lucene-solr - Passed in 21 minutes 12 seconds - artifact assembly needs to be fixed
  • test - Passed in 21 minutes 37 seconds
  • cassandra - Passed in 110 minutes

Status of builds in j2:

  • hbase098 - Passed in 65 minutes
  • hbase10 - Passed in 39 minutes 44 seconds
  • es - Failed in 15 min 12 sec - cant be run as root
  • cql - Failed in 67 minutes (cql tests will be fixed elsewhere)

Status of builds in jtp1:

  • es-hadoop-lucene-solr - Passed in 6 minutes 49 seconds - artifact assembly needs to be fixed
  • bdb - Passed in 118 minutes

Status of builds in jtp2:

  • test - Passed in 32 minutes 4 seconds
  • cassandra - Failed in 131 minutes (known failures)
  • hbase098 - Failed in 409 minutes (known failures)
  • hbase10 - Passed in 467 minutes (very close to timeout limit of 8 hours)
  • cql - Timed out in 8 hours (currently 14-15 hours. the timeout is a limitation of CodeBuild. will not run to completion until docker orchestration drops the run time for cql)

@janusgraph-bot janusgraph-bot added the cla: yes This PR is compliant with the CLA label Feb 20, 2017
@amcp amcp changed the title [WIP] add tooling to enable quick release testing add tooling to enable quick release testing Feb 21, 2017
@amcp amcp requested a review from jerryjch February 21, 2017 17:50
@amcp
Copy link
Author

amcp commented Feb 21, 2017

@sjudeng @jerryjch I am running off amcp/janusgraph master now. I will report back how long it took for all pipelines to finish testing. But, the PR is good to start reviewing.

@amcp amcp force-pushed the codepipelines branch 3 times, most recently from af06612 to f22c9d3 Compare February 21, 2017 18:47
@amcp
Copy link
Author

amcp commented Feb 22, 2017

@amcp regroup tests into those that pass and those that fail. Want to see the kind of integration that can be had on passing pipelines.

@janusgraph-bot
Copy link

Committer of one or more commits is not listed as a CLA signer, either individual or as a member of an organization.

@janusgraph-bot janusgraph-bot added cla: no This PR is not compliant with the CLA and removed cla: yes This PR is compliant with the CLA labels Feb 22, 2017
@mbrukman
Copy link
Member

@amcp — you used two different addresses here, one as "author", a different one as "committer", so your CLA is not recognized. You can see this because there are two photos next to each of your commits. Could you please fix this?

@amcp
Copy link
Author

amcp commented Feb 25, 2017

@mbrukman I will fix my commit.

@janusgraph-bot janusgraph-bot added cla: yes This PR is compliant with the CLA and removed cla: no This PR is not compliant with the CLA labels Mar 6, 2017
.gitignore Outdated
@@ -13,6 +13,7 @@ target/
/log/
/output/
/scripts/
/janusgraph-codepipelines-ci/dependency-reduced-pom.xml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update Maven shade plugin config in janusgraph-codepipelines-ci/pom.xml to include createDependencyReducedPom=false and then remove this exclusion?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

.gitignore Outdated
@@ -26,6 +27,9 @@ target/
/.settings/
/.project
/.classpath
/codepipelines-ci/.classpath
/codepipelines-ci/.project
/codepipelines-ci/.settings/
/janusgraph-*/.classpath
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These exclusions aren't necessary since they're covered under the below janusgraph-* patterns

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

buildspec.yml Outdated
artifacts:
base-directory: module
files:
- target/**/*
Copy link
Contributor

@sjudeng sjudeng Mar 23, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you move buildspec.yml to the janusgraph-codepipelines-ci module?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The standard location is at the root of the repository. We could add a step in the manual workflow to copy the file to the repo root, zip up the repo, copy it to S3, and use that as the source for Code Pipelines. Sounds like a lot of mechanism. Can we revisit this later, perhaps adding a TODO?

@@ -0,0 +1 @@
org.apache.tinkerpop.gremlin.process.TraversalPerformanceTest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is this test resource used? Same question for bdb2 and bdb3 below.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that I have CI working for the DynamoDB Storage Backend here, I want to build on this experience to inform the mechanism for dividing up tests here.

Basically, considering the large number of tests we have, parameterization and the length of concatenated canonical test class names, using these kinds of files is unwieldy and potentially may cause length exceeded errors on the command line used to start tests. I would rather define test categories and use those to drive the tests.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course, depending on the granularity of division, we may need a tool to make sure that TP updates and janusgraph-test updates did not introduce new tests that are not labelled with the new test categories.

--github-repo janusgraph \
--github-branch <branch you want to test> \
--profile code-pipelines \
--environments=./environments.json \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should --environment be --pipelines and can you document the expected JSON content format?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

renamed and moved to the bottom

pom.xml Outdated
@@ -114,10 +114,14 @@
<top.level.basedir>${basedir}</top.level.basedir>
<compiler.source>1.8</compiler.source>
<compiler.target>1.8</compiler.target>
<test.pipelines.excludes></test.pipelines.excludes>
<test.pipelines.includes></test.pipelines.includes>
<test.skip.pipelines>true</test.skip.pipelines>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are these used?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess nowhere so i removed them.

pom.xml Outdated
@@ -276,6 +280,7 @@
<exclude>**/*ProcessPerformanceTest.java</exclude>
<exclude>**/*StructureTest.java</exclude>
</excludes>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra newline

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

pom.xml Outdated
<log4j.configuration>file:${project.build.directory}/test-classes/log4j.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</execution>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do the janusgraph-codepipeline-ci tests warrant this custom test configuration? Would default surefire configuration suffice?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>janusgraph-codepipelines-ci</artifactId>
<name>JanusGraph-CodePipeline CI: Distributed Graph Database</name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update description from "Distributed Graph Database" to something describing module (e.g. "AWS Codepipelines" or something)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

```bash
mvn clean && mvn package && java -jar target/janusgraph-codepipelines-ci-0.1.0-SNAPSHOT.jar --region <region close to you> \
--bucket <bucket> \
--name <name of ci stack> \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are github-owner and github-token really required? I'm not familiar with AWS CodePipelines but the below docs suggest personal access tokens aren't required when using Git pull. If those docs are applicable it looks like only OutputBucketName and AllowedIps (GitHub 192.30.252.0/22?) would be required. I'm not positive but it doesn't look like even the ApiSecret would be required.

https://aws.amazon.com/blogs/devops/integrating-git-with-aws-codepipeline/

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for referring me to the blog article. My read on the article indicates that OutputBucketName plus one of AllowedIps or ApiSecret would be required. But, I like your inclination. AllowedIps requires less effort on the user's part and should continue to be viable for the foreseeable future.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On second thought, the existing configuration sets up a hook where new commits on the selected branch automatically get built in code pipeline/codebuild. Scenario: set up the pipeline for a release branch, tests get run once and some fail, you fix the failing tests, push a new commit to the release branch and then codepipeline/codebuild automatically builds anew.

@amcp amcp changed the title add tooling to enable quick release testing [WIP] add tooling to enable quick release testing Apr 29, 2017
@amcp amcp force-pushed the codepipelines branch 3 times, most recently from 3aa60ec to 13c50dc Compare June 8, 2017 07:32
*/
@Slf4j
public class AwsCodePipelinesCi {
private static final String AWS_CODEBUILD_JAVA_OPENJDK_8 = "aws/codebuild/java:openjdk-8";
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pull into a parameter

.withPackaging(ArtifactPackaging.NONE)
.withType(ArtifactsType.CODEPIPELINE)
.withName(artifactsName))
.withTimeoutInMinutes(480) //8 hours max - TODO externalize
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pull into a parameter

@amcp
Copy link
Author

amcp commented Jun 9, 2017

@sjudeng I'm working on this again. Any help you could give to push this to completion would be greatly appreciated.

@amcp
Copy link
Author

amcp commented Jun 23, 2017

@sjudeng getting the cql tests passing is also out of scope of this cr, so I am marking those complete as well.

@amcp amcp changed the title [WIP] add tooling to enable quick release testing add tooling to enable quick release testing Jun 23, 2017
@amcp amcp changed the title add tooling to enable quick release testing Add tooling to enable quick release testing Jun 23, 2017
Copy link
Contributor

@sjudeng sjudeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some feedback on the documentation

@@ -0,0 +1,57 @@
#JanusGraph CodePipelines CI
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need space after # for markdown section heading

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

--batch-mode \
--file ${SRC_DIR}/pom.xml \
-DskipTests=true -Dmaven.javadoc.skip=true -Dmaven.compiler.showWarnings=false \
&& rm -rf ${SRC_DIR}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this Dockerfile used?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The purpose of this Dockerfile is to create a reusable cache of maven dependencies.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on second thought, it seems like I am not using this Dockerfile, so I will remove it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

FROM maven:3-jdk-8
ENV DEBIAN_FRONTEND noninteractive
COPY settings-docker.xml /usr/share/maven/ref/
ENV COMMIT 9165ee8407b3607f39031cdaeff1d15ba0fd4e9e
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the significance of this commit?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a recent commit I can bake into a Docker repository so that building code does not take a long time - I use it to pull all the maven dependencies. Any better ideas?

It also requires you to create two service roles in IAM: one for CodePipeline and
one for CodeBuild.

1. Get a personal access token from [GitHub](https://github.com/settings/tokens) with repo and admin:repo_hook scopes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is write:repo_hook required or just read:repo_hook?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've confirmed in a use case and The documentation only mentions the repo scope but it assumes the user will create the pipeline using the console. To create the pipeline programmatically, the admin:repo_hook scope is required.

CodePipelines CI is a mechanism JanusGraph can use to do release testing in massively
parallel fashion (to the extent of AWS CodePipelines and CodeBuild service limits).

## Steps to kick off a build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider splitting this into two sections, one for one-time "Setup" (with steps 1-6 below) and one for "Testing".

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

--bucket jgamcp \
--github-owner amcp \
--github-repo janusgraph \
--github-branch codepipelines \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Set region, bucket, github owner, and branch as part of the environment above.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

mvn clean package
#define variables
export AWS_PROFILE_NAME='profile_to_use'
export AWS_ACCOUNT_NUMBER='000000000000'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the root account number?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can use STS to get the root account number, I will update

--codebuild-role-arn arn:aws:iam::${AWS_ACCOUNT_NUMBER}:role/${AWS_CODEBUILD_ROLE} \
--codepipeline-role-arn arn:aws:iam::${AWS_ACCOUNT_NUMBER}:role/${AWS_CODEPIPELINE_ROLE} \
--github-token ${GITHUB_TOKEN} \
--pipelines ${PWD}/pipe.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider moving pipelines file to the environment as well.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I provided two pipelines files so I prefer that users be able to copy paste the execution command after setting up their environment.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

second thought, i like your comment below so I will change according to your suggestion

--github-token ${GITHUB_TOKEN} \
--pipelines ${PWD}/pipe.json

#kick off tinkerpop tests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider removing the second call here. It's a complicated call and the only difference is the pipeline used. Instead create another section or discussion (or link) on how to create the pipelines files and indicate that examples are included to run default (pipe.json) and TinkerPop (tp-pipe.json) tests.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

```
8. Navigate to the [AWS Console](https://console.aws.amazon.com) and check on the status of your pipeline to see status.

## Future ideas
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about tracking this under a separate issue instead of here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved to an issue #367

@amcp amcp force-pushed the codepipelines branch 2 times, most recently from 9e4f2a0 to 1231adb Compare June 26, 2017 16:33
Copy link
Contributor

@sjudeng sjudeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you include a section on cleaning up resources (e.g. CodeBuild, CodePipeline, S3 bucket, IAM roles/policies/user, CloudWatch logs, etc.)?

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/usr/share/maven/ref/repository</localRepository>
</settings>
Copy link
Contributor

@sjudeng sjudeng Jun 26, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be removed since you've removed Dockerfile?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

2. Second, configure the parameters below to customize your test stack.

```bash
#define variables
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove comment

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

and `export PIPELINE_CONFIGURATION=${PWD}/tp-pipe.json` for TinkerPop tests.

```bash
#kick off regular tests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove comment

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

#Name of bucket you want to use or create and use for storing your build artifacts.
export AWS_S3_BUCKET_NAME=''
#Name of pipeline configuration file to use
export PIPELINE_CONFIGURATION=''
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to generalize "Create test pipeline" into it's own list item/section and describe the pipeline.json format and provide the two examples?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created a "Create test pipeline" section and described one example

mvn clean package
#constants
export AWS_PROFILE_NAME='code-pipelines'
export AWS_ACCOUNT_NUMBER=`aws sts get-caller-identity --output text | cut -f1`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add --profile code-pipelines

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

--pipelines ${PIPELINE_CONFIGURATION}
```

4. Navigate to the [AWS Console](https://console.aws.amazon.com) and check on the status of your pipeline to see status.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider changing link to http://console.aws.amazon.com/codepipeline

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

and a default [output format](http://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html#controlling-output-format)
of your choice (`json`, `text`, and `table` are available).
4. Create a service role for CodeBuild as described
[here](http://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Create a CodeBuild policy and associate it to a new service role as described ..."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

[here](http://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role).
5. Create an IAM policy for a CodePipelines service role as described
[here](http://docs.aws.amazon.com/codepipeline/latest/userguide/iam-identity-based-access-control.html#view-default-service-role-policy).
6. Create a service role for CodePipelines by using the policy you created in step 5 and then set the STS trust to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Combine 5 and 6 (makes it consistent with step 4): "Create a CodePipeline policy and associate it to a new service role." Indicate (maybe as a sub-bullet) that "EC2" (or whichever) role be selected when creating the role since AWS CodePipeline doesn't appear to be an available option. Be more specific (maybe also as a sub-bullet) on how to set STS trust to codepipeline.amazonaws.com.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

#define variables
#GitHub personal access token you created in step 1
export GITHUB_TOKEN=''
#GitHub organization or user name
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add "of the repository to build". Need to make it clear that it's the user/group of the repository to test not (necessarily) the GitHub handle.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

```

3. Kick off the regular and TinkerPop tests. Use `export PIPELINE_CONFIGURATION=${PWD}/pipe.json` for regular tests
and `export PIPELINE_CONFIGURATION=${PWD}/tp-pipe.json` for TinkerPop tests.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can remove the ${PWD}/ prefixes

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

@amcp
Copy link
Author

amcp commented Jun 27, 2017

I forgot to add a cleanup section. I can do that next.

@amcp amcp requested review from analytically and removed request for jerryjch June 27, 2017 04:58
@amcp
Copy link
Author

amcp commented Jun 27, 2017

@sjudeng I added the cleanup section.

Copy link
Contributor

@sjudeng sjudeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good. I think it's just down to getting the es tests passing and fixing the issue (what is it?) with "artifact assembly" in hadoop-lucene-solr test group.

export AWS_REGION_NAME=''
#Name of bucket you want to use or create and use for storing your build artifacts.
export AWS_S3_BUCKET_NAME=''
#Name of pipeline configuration file to use
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Name of pipeline JSON configuration file to use"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


To kick off the regular and TinkerPop tests. Use `export PIPELINE_CONFIGURATION=pipe.json` for regular tests
and `export PIPELINE_CONFIGURATION=tp-pipe.json` for TinkerPop tests.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a section break here for ## Run Test Pipelines. I'd keep the "export PIPELINE_CONF..." examples in the previous section.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Copy link
Contributor

@sjudeng sjudeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More minor feedback. Do you want to create a separate issue to get ES tests running through pipelines? That would just leave the issue you mention of fixing artifact assembly for hadoop-lucene-solr test group.

4. Create an IAM policy for CodeBuild and associate it to a new service role as described
[here](http://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role). Select the
__Amazon EC2__ role type as CodeBuild is not yet available on this page. Edit the new role's trust relationship
and replace it with the text in step 16 of the CodeBuild user guide.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is now an AWS CodeBuild role so I don't think you need the second or third sentences (default role trust relationship includes codebuild.amazonaws.com principal).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

--pipelines ${PIPELINE_CONFIGURATION}
```

Navigate to the [AWS Console](https://console.aws.amazon.com/codepipeline) and check on the status of your pipeline to see status.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"...status of your pipeline."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

```
The first pipeline is called `j1` and the second pipeline is called `j2`. Each of these pipelines have four
parallel build actions defined. Each build action is keyed at the action name and includes the environment
variables to be passed CodeBuild and used in the buildspec.yml file. Use `export PIPELINE_CONFIGURATION=pipe.json` for regular tests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of "Use 'export PIPELINE..." how about something like below?

Define the PIPELINE_CONFIGURATION environment variable to point to the custom pipeline file or use existing pipe.json/tp-pipe.json to run all default/TinkerPop tests.

export PIPELINE_CONFIGURATION=pipe.json

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@amcp amcp force-pushed the codepipelines branch 2 times, most recently from 4f6d207 to a2a9360 Compare June 27, 2017 18:35
@amcp
Copy link
Author

amcp commented Jun 27, 2017

lets create a separate issue for fixing ES build #372

@amcp amcp force-pushed the codepipelines branch 3 times, most recently from 37d1b87 to b08d6fc Compare June 30, 2017 00:44
@amcp
Copy link
Author

amcp commented Jun 30, 2017

@sjudeng I fixed assembly of composite builds like hadoop-lucene-solr so I am ready to close this PR out.

Copy link
Contributor

@sjudeng sjudeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Nice work!

@amcp amcp merged commit 2a4d48f into JanusGraph:master Jun 30, 2017
@amcp amcp deleted the codepipelines branch June 30, 2017 10:39
@sjudeng sjudeng added this to the Release v0.2.0 milestone Jul 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes This PR is compliant with the CLA
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants