feat: Build and integ test scripts for pipeline

This commit is contained in:
Clare Liguori
2019-12-16 16:12:19 -08:00
parent 8cff48fde9
commit 52bc82a29b
4 changed files with 81 additions and 0 deletions

14
buildspec.yml Normal file
View File

@@ -0,0 +1,14 @@
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
build:
commands:
# Run unit tests
- npm ci
- npm run test
artifacts:
files:
- '**/*'

18
buildspec_check_dist.yml Normal file
View File

@@ -0,0 +1,18 @@
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
build:
commands:
# Validate that the dist/ folder has the latest code packaged.
# If there are unpackaged changes, this build will fail.
# The GitHub Actions 'package' workflow will eventually run
# and will sync the dist folder, which will re-trigger this build.
- npm ci
- npm run package
- git diff --exit-code dist/index.js
artifacts:
files:
- '**/*'

24
buildspec_integ.yml Normal file
View File

@@ -0,0 +1,24 @@
version: 0.2
env:
variables:
GITHUB_HUB_CLI_VERSION: 2.13.0
phases:
install:
runtime-versions:
nodejs: 10
build:
commands:
# Install hub CLI
- wget https://github.com/github/hub/releases/download/v$GITHUB_HUB_CLI_VERSION/hub-linux-amd64-$GITHUB_HUB_CLI_VERSION.tgz
- tar -xzvf hub-linux-amd64-$GITHUB_HUB_CLI_VERSION.tgz && sudo mv hub-linux-amd64-$GITHUB_HUB_CLI_VERSION/bin/hub /usr/local/bin
# Configure git client
- git config user.name "CodeBuild Integration Test"
- git config user.email $COMMIT_EMAIL_ADDRESS
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GITHUB_TOKEN}:@github.com" > .git/credentials
# Run integration tests
- ./run_integ_test.sh

25
run_integ_test.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
set -ex
# Retrieve the action commit ID to test
ACTION_GIT_COMMIT_ID=`git rev-parse HEAD`
# Update the integ test action workflow file with the latest action commit ID
git checkout integ-tests
sed -i 's|aws-actions/configure-aws-credentials@v1|aws-actions/configure-aws-credentials@$ACTION_GIT_COMMIT_ID|g' test-workflow.yml
cp test-workflow.yml .github/workflows
git add .github/workflows
git commit -m "Test commit $ACTION_GIT_COMMIT_ID"
# Trigger the action workflow
git push origin integ-tests
# Validate that the action workflow succeeds
# Exit codes: success = 0; failure = 1; pending = 2; no status = 3
while hub ci-status; [ $? -ge 2 ] do
echo "waiting for test workflow to complete..."
sleep 5
done
hub ci-status