redoc/.github/workflows/publish.yml

120 lines
3.5 KiB
YAML
Raw Normal View History

name: Publish
on:
push:
tags:
- v[0-9]*.[0-9]*.[0-9]*
jobs:
bundle:
runs-on: ubuntu-latest
steps:
2022-05-16 16:16:16 +03:00
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: Cache node modules
2022-05-16 16:16:16 +03:00
uses: actions/cache@v3
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
npm-${{ hashFiles('package-lock.json') }}
npm-
- run: npm ci
- run: npm run bundle
- name: Store bundle artifact
2022-05-16 16:16:16 +03:00
uses: actions/upload-artifact@v3
with:
name: bundles
path: bundles
retention-days: 1
unit-tests:
runs-on: ubuntu-latest
steps:
2022-05-16 16:16:16 +03:00
- uses: actions/checkout@v3
2022-05-12 15:31:35 +03:00
- run: npm ci && npm ci --prefix cli
- run: npm test
e2e-tests:
needs: [bundle]
runs-on: ubuntu-latest
steps:
2022-05-16 16:16:16 +03:00
- uses: actions/checkout@v3
- run: npm ci
- name: Download bundled artifact
2022-05-16 16:16:16 +03:00
uses: actions/download-artifact@v3
with:
name: bundles
path: bundles
- run: npm run e2e
# disable this for now
# deploy-demo:
# needs: [bundle, unit-tests, e2e-tests]
# runs-on: ubuntu-latest
# steps:
2022-05-16 16:16:16 +03:00
# - uses: actions/checkout@v3
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v1
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: us-east-1
# - name: Install dependencies
# run: npm ci
# - name: Download bundled artifacts
2022-05-16 16:16:16 +03:00
# uses: actions/download-artifact@v3
# with:
# name: bundles
# path: bundles
# - name: Build package
# run: npm run build:demo
# - name: Deploy to S3 bucket
# run: npm run deploy:demo
# - name: Invalidate
# run: aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_DEMO_DISTRIBUTION_ID }} --paths "/*"
publish:
2022-05-30 13:40:19 +03:00
name: Publish to NPM
needs: [bundle, unit-tests, e2e-tests]
runs-on: ubuntu-latest
steps:
2022-05-16 16:16:16 +03:00
- uses: actions/setup-node@v3
with:
node-version: '14.x'
2021-10-11 20:39:20 +03:00
registry-url: 'https://registry.npmjs.org'
2022-05-16 16:16:16 +03:00
- uses: actions/checkout@v3
- name: Download bundled artifacts
2022-05-16 16:16:16 +03:00
uses: actions/download-artifact@v3
with:
name: bundles
path: bundles
- name: Cache node modules
2022-05-16 16:16:16 +03:00
uses: actions/cache@v3
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
npm-${{ hashFiles('package-lock.json') }}
npm-
- name: Before deploy
run: npm ci && npm run declarations
- name: Publish to NPM
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
2022-05-30 13:40:19 +03:00
publish-cdn:
name: Publish to CDN
needs: [bundle, unit-tests, e2e-tests]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Configure AWS
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Download all artifact
uses: actions/download-artifact@v3
- name: Publish to S3
run: npm run publish-cdn