unstable test reapeat #1866
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 | |
| submodules: true | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: test | |
| - run: rustup target add x86_64-unknown-linux-musl | |
| if: ${{ matrix.os == 'ubuntu-latest' }} | |
| - name: Configure Git for access to vite-task | |
| run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - 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 | |
| submodules: true | |
| - name: Configure Git for access to vite-task | |
| run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 | |
| with: | |
| save-cache: ${{ github.ref_name == 'main' }} | |
| cache-key: lint | |
| tools: dprint,cargo-shear | |
| components: clippy rust-docs rustfmt | |
| - run: | | |
| dprint check | |
| cargo shear | |
| 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 | |
| submodules: true | |
| - name: Configure Git for access to vite-task | |
| run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - 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: pnpm bootstrap-cli | |
| - name: Run self | |
| run: vite run -r build | |
| - name: Print help for built-in commands | |
| run: | | |
| 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: ubuntu-latest | |
| - os: namespace-profile-mac-default | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Configure Git for access to vite-task | |
| run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - 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: Install Playwright browsers | |
| run: pnpx playwright install chromium | |
| - name: Run CLI E2E tests | |
| run: | | |
| RUST_BACKTRACE=1 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 | |
| submodules: true | |
| - name: Configure Git for access to vite-task | |
| run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - 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 vite rust binary | |
| run: cargo build --bin vite --release | |
| - name: Run vite install | |
| run: | | |
| export PATH=$PWD/target/release:$PATH | |
| # Test vite 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 vite 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" | |
| vite install | |
| # run again to show install cache increase by time | |
| time vite 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')) }} |