Skip to content

Replace dependency rollup-plugin-terser with @rollup/plugin-terser 0.1.0 #1107

Replace dependency rollup-plugin-terser with @rollup/plugin-terser 0.1.0

Replace dependency rollup-plugin-terser with @rollup/plugin-terser 0.1.0 #1107

Workflow file for this run

name: Build
env:
NODE_VERSION: 14.18.1
on:
push:
branches:
- '*'
pull_request:
branches:
- main
release:
types:
- published
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn --pure-lockfile
- name: Lint Code
run: yarn lint
unit-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn
- name: Run Unit Tests
run: yarn nx run-many --target=test --all --parallel
integration-test:
needs:
- unit-test
- lint
strategy:
fail-fast: false
matrix:
os:
- macos-latest
# - ubuntu-latest TODO Why still timeouts?
# - windows-latest TODO Why still timeouts?
rxjs:
- '6.6.7' # Last 6.x
- '7.0.1' # Latest 7.0.x
- '7.2.0' # First Release that changed how operators are imported https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md#720-2021-07-05
- 'latest' # Latest and greatest
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Use RxJS ${{ matrix.rxjs }} for Test
run: |
sed -i '' 's/\"rxjs\": \".*\"/\"rxjs\": \"${{ matrix.rxjs }}\"/' packages/*/package.json
- name: Install Dependencies
run: yarn
- name: Test on Linux System
if: runner.os == 'Linux'
run: xvfb-run -a yarn nx run extension-integrationtest:integrationtest --configuration=test
- name: Test on Non-Linux System
if: runner.os != 'Linux'
run: yarn nx run extension-integrationtest:integrationtest --configuration=test
snapshot:
if: github.event_name != 'release' || (github.event_name == 'release' && github.event.release.prerelease == true)
needs:
- unit-test
- integration-test
- lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn --pure-lockfile
- name: Production Build
run: yarn nx run-many --target=build --configuration=prod --projects=extension,runtime-webpack
env:
POSTHOG_HOST: snapshot
POSTHOG_PROJECT_API_KEY: snapshot
- name: 'extension: Create VSIX'
run: yarn nx package extension
env:
VSCE_PAT: ${{ secrets.AZURE_ACCESS_TOKEN }}
- name: 'runtime-wepack: Create TGZ'
run: yarn nx package runtime-webpack
- name: 'extension: Upload snapshot artifact'
uses: actions/upload-artifact@v2
with:
name: extension
path: 'packages/extension/*.vsix'
retention-days: 10
- name: 'runtime-webpack: Upload snapshot artifact'
uses: actions/upload-artifact@v2
with:
name: runtime-webpack
path: 'packages/runtime-webpack/*.tgz'
retention-days: 10
publish-marketplace:
if: github.event_name == 'release' && github.event.release.prerelease == false
needs:
- unit-test
- lint
- integration-test
runs-on: ubuntu-latest
environment:
name: production
url: https://marketplace.visualstudio.com/items?itemName=manuelalabor.rxjs-debugging-for-vs-code
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: 'https://registry.npmjs.org'
- name: Install Dependencies
run: yarn --pure-lockfile
- name: Create Production Build
run: yarn nx run extension:build:prod
env:
POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }}
POSTHOG_PROJECT_API_KEY: ${{ secrets.POSTHOG_PROJECT_API_KEY }}
- name: 'Publish to Marketplace'
run: yarn nx run extension:publish
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
publish-npm:
if: github.event_name == 'release'
needs:
- unit-test
- lint
- integration-test
runs-on: ubuntu-latest
environment:
name: production
url: https://www.npmjs.com/package/@rxjs-debugging/runtime-webpack
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: 'https://registry.npmjs.org'
- name: Install Dependencies
run: yarn --pure-lockfile
- name: Create Production Build
run: yarn nx run runtime-webpack:build:prod
- name: 'Publish to npm'
run: yarn nx run runtime-webpack:publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}