name: Integration tests on: [push, pull_request] env: CARGO_INCREMENTAL: 0 jobs: publish-test: name: node-api if: >- ${{ !contains(github.event.head_commit.message, 'chore: ') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # We explicitly do this to cache properly. - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal - uses: actions/setup-node@v3 with: node-version: 16 cache: "yarn" - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/ **/target/ key: ${{ runner.os }}-node-api-test - name: Set platform name run: | export NODE_PLATFORM_NAME=$(node -e "console.log(require('os').platform())") echo "PLATFORM_NAME=$NODE_PLATFORM_NAME" >> $GITHUB_ENV shell: bash - name: Prepare run: | rustup target add wasm32-wasi yarn yarn build:dev yarn test integration-test: name: swc-cli if: >- ${{ !contains(github.event.head_commit.message, 'chore: ') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 14 cache: "yarn" - name: Cache uses: actions/cache@v3 with: path: | ~/.cargo/ **/target/ key: ${{ runner.os }}-cargo-integration - name: Set platform name run: | export NODE_PLATFORM_NAME=$(node -e "console.log(require('os').platform())") echo "PLATFORM_NAME=$NODE_PLATFORM_NAME" >> $GITHUB_ENV shell: bash - name: Prepare run: | yarn yarn build:dev # Avoid no space left on device, copyfile cargo clean yarn global add @swc/cli@0.1.33 yarn link yarn global add file:$PWD - name: (swc) three.js run: | mkdir -p tests/integration/three-js yarn global add qunit failonlyreporter # Download three.js git clone --depth 1 https://github.com/mrdoob/three.js.git -b r117 tests/integration/three-js/repo swc -C isModule=unknown -C test=\".*.js$\" -C module.type=commonjs --sync tests/integration/three-js/repo/ -d tests/integration/three-js/build/ (cd tests/integration/three-js/build/test && qunit -r failonlyreporter unit/three.source.unit.js) # terser: contains with statement in test # Rome.js: I forgot the cause, but it didn't work. # jQuery: browser only (window.document is required) - name: (swc) redux run: | mkdir -p tests/integration/redux yarn global add qunit failonlyreporter # Download git clone --depth 1 https://github.com/reduxjs/redux.git -b v4.1.0 tests/integration/redux/repo swc --sync tests/integration/redux/repo/src/ -d tests/integration/redux/repo/lib/ echo "module.exports=require('./index')" > tests/integration/redux/repo/lib/redux.js swc --sync tests/integration/redux/repo/src/ -d tests/integration/redux/repo/test/ swc --sync tests/integration/redux/repo/test/ -d tests/integration/redux/repo/test/ (cd tests/integration/redux/repo && yarn) (cd tests/integration/redux/repo && npx jest '.*.js' --modulePathIgnorePatterns 'typescript') - name: (swcpack) example react app run: | (cd crates/swc_node_bundler/tests/integration/react && yarn && npx spack)