Skip to content

Merge pull request #804 from splitio/development #948

Merge pull request #804 from splitio/development

Merge pull request #804 from splitio/development #948

Workflow file for this run

name: ci-cd
on:
pull_request:
branches:
- master
- development
push:
branches:
- '*'
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.run_number || github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
id-token: write
jobs:
build:
name: Build
# @TODO rollback to ubuntu-latest eventually. ATM, `npm run test-browser` fails when using ubuntu-latest (ubuntu-22.04) with "ERROR [launcher]: Cannot start ChromeHeadless"
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Redis
run: |
sudo add-apt-repository ppa:redislabs/redis
sudo apt-get install -y redis-tools redis-server
- name: Check Redis
run: redis-cli ping
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
cache: 'npm'
- name: npm ci
run: npm ci
- name: npm ts tests
run: npm run test-ts-decls
- name: npm check
run: npm run check
- name: npm test-browser
run: npm run test-browser
- name: npm test-node
run: npm run test-node
- name: npm build
run: BUILD_BRANCH=$(echo "${GITHUB_REF#refs/heads/}") npm run build
- name: Store assets
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/development' || github.ref == 'refs/heads/master') }}
uses: actions/upload-artifact@v3
with:
name: assets
path: umd/
retention-days: 1
upload-stage:
name: Upload assets
runs-on: ubuntu-20.04
needs: build
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/development' }}
strategy:
matrix:
environment:
- stage
include:
- environment: stage
account_id: "079419646996"
bucket: split-public-stage
steps:
- name: Download assets
uses: actions/download-artifact@v3
with:
name: assets
path: umd
- name: Display structure of assets
run: ls -R
working-directory: umd
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
role-to-assume: arn:aws:iam::${{ matrix.account_id }}:role/gha-public-assets-role
aws-region: us-east-1
- name: Upload to S3
run: aws s3 sync $SOURCE_DIR s3://$BUCKET/$DEST_DIR $ARGS
env:
BUCKET: ${{ matrix.bucket }}
SOURCE_DIR: ./umd
DEST_DIR: sdk
ARGS: --acl public-read --follow-symlinks --cache-control max-age=31536000,public
upload-prod:
name: Upload assets
runs-on: ubuntu-20.04
needs: build
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
strategy:
matrix:
environment:
- prod
include:
- environment: prod
account_id: "825951051969"
bucket: split-public
steps:
- name: Download assets
uses: actions/download-artifact@v3
with:
name: assets
path: umd
- name: Display structure of assets
run: ls -R
working-directory: umd
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
role-to-assume: arn:aws:iam::${{ matrix.account_id }}:role/gha-public-assets-role
aws-region: us-east-1
- name: Upload to S3
run: aws s3 sync $SOURCE_DIR s3://$BUCKET/$DEST_DIR $ARGS
env:
BUCKET: ${{ matrix.bucket }}
SOURCE_DIR: ./umd
DEST_DIR: sdk
ARGS: --acl public-read --follow-symlinks --cache-control max-age=31536000,public