Chore(deps-dev): Bump browserify-sign from 4.2.1 to 4.2.2 in /legacy #1757
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test & Ship | |
on: | |
- push | |
- pull_request | |
env: | |
CYPRESS_PROJECT_ID: "itz63b" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
continue-on-error: false | |
strategy: | |
matrix: | |
node_version: | |
- 8.x | |
- 10.x | |
- 12.x | |
include: | |
- node_version: 8.x | |
run_lint_tests: "True" | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Get npm cache directory | |
id: npm-cache | |
run: | | |
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v1 | |
with: | |
path: ${{ steps.npm-cache.outputs.dir }} | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: | | |
set -e; | |
npm install -g gulp; | |
npm run install:all; | |
- name: List installed dependencies | |
run: | | |
npm ls || true; | |
- name: Run lint tests | |
if: ${{ matrix.run_lint_tests }} | |
run: | | |
cd legacy ; | |
TEST_SUITE="lint" test/test.sh ; | |
- name: Run tests | |
run: | | |
npm run test; | |
e2e-run: | |
if: github.event_name == 'push' # not on fork PRs | |
continue-on-error: true # while tests stabilizing | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/checkout@v3 | |
with: | |
repository: ushahidi/platform-e2e-testing | |
ref: main | |
path: e2e-testing/ | |
## set up API endpoint | |
- name: Setup API endpoint | |
run: | | |
echo 'BACKEND_URL=https://master-api.staging.ush.zone' > .env | |
## same as above step | |
- name: Setup Node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 12.x | |
- name: Get npm cache directory | |
id: npm-cache | |
run: | | |
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v1 | |
with: | |
path: ${{ steps.npm-cache.outputs.dir }} | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: | | |
set -e; | |
npm install -g gulp; | |
npm run install:all; | |
- name: Run server | |
run: | | |
npm run serve & | |
- name: Wait until all modules are being served | |
run: | | |
retry() { | |
local -r -i max_attempts="$1"; shift | |
local -r cmd="$@" | |
local -i attempt_num=1 | |
until $cmd | |
do | |
if (( attempt_num == max_attempts )) | |
then | |
echo "Attempt $attempt_num failed and there are no more attempts left!" | |
return 1 | |
else | |
echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..." | |
sleep $(( attempt_num++ )) | |
fi | |
done; | |
} | |
server='http://localhost:3000' | |
retry 60 timeout 1 curl --silent ${server}/importmap.json || { echo "Failed getting importmap!" && exit 1; } | |
for js in $(curl --silent ${server}/importmap.json | jq -r '.imports | .[]'); do | |
retry 60 timeout 1 curl --silent ${server}${js} || { echo "Failed waiting for module ${js}" && exit 1; } | |
done | |
- name: Patch cypress config | |
run: | | |
cd e2e-testing | |
jq '.projectId="'${CYPRESS_PROJECT_ID}'"' <<<$(cat cypress.json) > cypress.json | |
jq '.baseUrl="http://localhost:3000/"' <<<$(cat cypress.env.json) > cypress.env.json | |
- name: Cypress run | |
uses: cypress-io/github-action@v2 | |
with: | |
browser: chrome | |
install-command: npm install | |
record: true | |
parallel: true | |
working-directory: e2e-testing | |
env: | |
CYPRESS_ush_admin_email: "${{secrets.e2e_ush_admin_email}}" | |
CYPRESS_ush_admin_pwd: "${{secrets.e2e_ush_admin_pwd}}" | |
CYPRESS_ush_user_name: "${{secrets.e2e_ush_user_name}}" | |
CYPRESS_ush_user_email: "${{secrets.e2e_ush_user_email}}" | |
CYPRESS_ush_user_pwd: "${{secrets.e2e_ush_user_pwd}}" | |
CYPRESS_RECORD_KEY: ${{ secrets.E2E_CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ship: | |
needs: [ test, e2e-run ] | |
if: github.event_name == 'push' # not PRs | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_ACCESS_KEY }} | |
aws-region: eu-west-1 | |
- name: Login to AWS Container Registry | |
uses: docker/login-action@v1 | |
with: | |
registry: 513259414768.dkr.ecr.eu-west-1.amazonaws.com | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v3 | |
with: | |
images: | | |
513259414768.dkr.ecr.eu-west-1.amazonaws.com/platform-client | |
tags: | | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=sha | |
- name: Build and push to Amazon ECR | |
uses: docker/build-push-action@v2 | |
with: | |
pull: true | |
push: ${{ github.event_name != 'pull_request' }} | |
labels: ${{ steps.meta.outputs.labels }} | |
tags: ${{ steps.meta.outputs.tags }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Logout from Amazon ECR | |
if: always() | |
run: docker logout ${{ steps.login-ecr.outputs.registry }} |