fix(vite_task): pass raw args to dev command #1160
Workflow file for this run
This file contains hidden or 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: CI | |
| permissions: | |
| # Doing it explicitly because the default permission only includes metadata: read. | |
| contents: read | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| types: [opened, synchronize] | |
| paths-ignore: | |
| - '**/*.md' | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: ${{ github.ref_name != 'main' }} | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| test: | |
| name: Test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| - os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| - os: namespace-profile-mac-default | |
| target: aarch64-apple-darwin | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: test | |
| - run: cargo check --all-targets --all-features | |
| env: | |
| RUSTFLAGS: '-D warnings --cfg tokio_unstable' # also update .cargo/config.toml | |
| - run: cargo test | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: lint | |
| components: clippy rust-docs rustfmt | |
| - run: | | |
| cargo fmt --check | |
| # cargo clippy --all-targets --all-features -- -D warnings | |
| RUSTDOCFLAGS='-D warnings' cargo doc --no-deps --document-private-items | |
| - uses: crate-ci/typos@85f62a8a84f939ae994ab3763f01a0296d61a7ee # v1.36.2 | |
| with: | |
| files: . | |
| - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 | |
| - name: Deduplicate dependencies | |
| run: pnpm dedupe --check | |
| run: | |
| name: Run task | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: run | |
| - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 | |
| - name: Build self | |
| run: cargo build --bin vt | |
| - name: Run self | |
| run: ./target/debug/vt run -r build | |
| - name: Print help for built-in commands | |
| run: | | |
| export PATH="$PATH:$(pwd)/packages/cli/bin" | |
| vite -h | |
| vite run -h | |
| vite lint -h | |
| vite test -h | |
| vite build -h | |
| vite fmt -h | |
| cli-e2e-test: | |
| name: CLI E2E test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # - os: windows-latest | |
| - os: namespace-profile-mac-default | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| - run: | | |
| brew install rustup | |
| rustup install stable | |
| echo "PATH=/opt/homebrew/opt/rustup/bin:$PATH" >> $GITHUB_ENV | |
| if: ${{ matrix.os == 'namespace-profile-mac-default' }} | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: cli-e2e-test | |
| - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 | |
| - name: Build CLI | |
| run: pnpm run bootstrap-cli | |
| - name: Run CLI lint | |
| run: pnpm lint | |
| - name: Run CLI E2E tests | |
| run: | | |
| pnpm test | |
| git diff --exit-code | |
| install-e2e-test: | |
| name: vite install E2E test | |
| # FIXME: Error: spawnSync esbuild ENOTSOCK | |
| # runs-on: ubuntu-latest | |
| runs-on: namespace-profile-mac-default | |
| if: ${{ github.ref_name == 'main' }} | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: install-e2e-test | |
| - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 | |
| - name: Build vt | |
| run: cargo build --bin vt --release | |
| - name: Run vt install | |
| run: | | |
| export PATH=$PWD/target/release:$PATH | |
| # Test vt install on various repositories with different package managers | |
| repos=( | |
| # pnpm workspace | |
| "pnpm/pnpm:pnpm" | |
| "vitejs/vite:vite" | |
| # yarn workspace | |
| "napi-rs/napi-rs:napi-rs" | |
| "toeverything/AFFiNE:AFFiNE" | |
| # npm workspace | |
| "npm/cli:npm" | |
| "redhat-developer/vscode-extension-tester:vscode-extension-tester" | |
| ) | |
| for repo_info in "${repos[@]}"; do | |
| IFS=':' read -r repo dir_name <<< "$repo_info" | |
| echo "Testing vt install on $repo..." | |
| # remove the directory if it exists | |
| if [ -d "tmp/$dir_name" ]; then | |
| rm -rf "tmp/$dir_name" | |
| fi | |
| git clone --depth 1 "https://github.com/$repo.git" "tmp/$dir_name" | |
| cd "tmp/$dir_name" | |
| vt install | |
| # run again to show install cache increase by time | |
| time vt install | |
| echo "✓ Successfully installed dependencies for $repo" | |
| echo "" | |
| done | |
| done: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - test | |
| - lint | |
| - run | |
| - cli-e2e-test | |
| steps: | |
| - run: exit 1 | |
| # Thank you, next https://github.com/vercel/next.js/blob/canary/.github/workflows/build_and_test.yml#L379 | |
| if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }} |