1+ name : Integration Tests
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ pull_request :
8+ branches :
9+ - main
10+
11+ jobs :
12+ generate-stack-name :
13+ runs-on : ubuntu-latest
14+ outputs :
15+ stack-name : ${{ steps.generate-stack-name.outputs.stack-name }}
16+ steps :
17+ - name : Generate Stack Name
18+ id : generate-stack-name
19+ run : echo "::set-output name=stack-name::$(echo graph-notebook-$RANDOM)"
20+ shell : bash
21+ create-stack :
22+ runs-on : ubuntu-latest
23+ needs : generate-stack-name
24+ steps :
25+ - name : Set up Python 3.6
26+ uses : actions/setup-python@v2
27+ with :
28+ python-version : 3.6
29+ - name : Configure AWS Credentials
30+ uses : aws-actions/configure-aws-credentials@v1
31+ with :
32+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
33+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
34+ aws-region : us-east-1
35+ role-to-assume : ${{ secrets.AWS_ROLE_TO_ASSUME }}
36+ role-duration-seconds : 3600
37+ role-session-name : IntegrationTestRunner
38+ - uses : actions/checkout@v2
39+ - name : Install dependencies
40+ run : |
41+ python -m pip install --upgrade pip
42+ pip install flake8 pytest
43+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
44+ - name : Install
45+ run : |
46+ pip install .
47+ - name : Create Stack
48+ id : create-stack
49+ run : |
50+ python test/integration/NeptuneIntegrationWorkflowSteps.py \
51+ create-cfn-stack \
52+ --cfn-stack-name ${{ needs.generate-stack-name.outputs.stack-name }} \
53+ --cfn-template-url ${{ secrets.CFN_TEMPLATE_URL }} \
54+ --cfn-s3-bucket ${{ secrets.INTEG_CFN_S3_BUCKET }} \
55+ --cfn-runner-role ${{ secrets.CFN_ROLE }} \
56+ --aws-region ${{ secrets.AWS_REGION }}
57+ run-tests :
58+ runs-on : ubuntu-latest
59+ needs : [generate-stack-name, create-stack]
60+ steps :
61+ - name : Set up Python 3.6
62+ uses : actions/setup-python@v2
63+ with :
64+ python-version : 3.6
65+ - name : Configure AWS Credentials
66+ uses : aws-actions/configure-aws-credentials@v1
67+ with :
68+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
69+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
70+ aws-region : us-east-1
71+ role-to-assume : ${{ secrets.AWS_ROLE_TO_ASSUME }}
72+ role-duration-seconds : 3600
73+ role-session-name : IntegrationTestRunner
74+ - uses : actions/checkout@v2
75+ - name : Install dependencies
76+ run : |
77+ python -m pip install --upgrade pip
78+ pip install flake8 pytest
79+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
80+ - name : Install
81+ run : |
82+ pip install .
83+ - name : Give user /etc/hosts permission
84+ run : |
85+ sudo chmod 777 /etc/hosts
86+ - name : Run Basic Tests
87+ run : |
88+ python test/integration/NeptuneIntegrationWorkflowSteps.py \
89+ run-tests \
90+ --pattern "*without_iam.py" \
91+ --cfn-stack-name ${{ needs.generate-stack-name.outputs.stack-name }} \
92+ --aws-region ${{ secrets.AWS_REGION }}
93+ - name : Run Networkx Tests
94+ run : |
95+ python test/integration/NeptuneIntegrationWorkflowSteps.py \
96+ run-tests \
97+ --pattern "*network*.py" \
98+ --cfn-stack-name ${{ needs.generate-stack-name.outputs.stack-name }} \
99+ --aws-region ${{ secrets.AWS_REGION }}
100+ - name : Run IAM Tests
101+ run : |
102+ python test/integration/NeptuneIntegrationWorkflowSteps.py \
103+ run-tests \
104+ --pattern "*with_iam.py" \
105+ --iam \
106+ --cfn-stack-name ${{ needs.generate-stack-name.outputs.stack-name }} \
107+ --aws-region ${{ secrets.AWS_REGION }}
108+ - name : Cleanup
109+ run : |
110+ python test/integration/NeptuneIntegrationWorkflowSteps.py \
111+ delete-cfn-stack \
112+ --cfn-stack-name ${{ needs.generate-stack-name.outputs.stack-name }} \
113+ --aws-region ${{ secrets.AWS_REGION }}
0 commit comments