Skip to content

Commit

Permalink
feat: Build and integ test scripts for pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
clareliguori committed Jan 30, 2020
1 parent 8cff48f commit 52bc82a
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 0 deletions.
14 changes: 14 additions & 0 deletions buildspec.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 18 additions & 0 deletions buildspec_check_dist.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions buildspec_integ.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 25 additions & 0 deletions run_integ_test.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 52bc82a

Please sign in to comment.