Skip to content

Commit

Permalink
Auto merge of rust-lang#112305 - lnicola:sync-from-ra, r=lnicola
Browse files Browse the repository at this point in the history
⬆️ rust-analyzer

r? `@ghost`
  • Loading branch information
bors committed Jun 5, 2023
2 parents 7452822 + 6c1f108 commit 2f896da
Show file tree
Hide file tree
Showing 598 changed files with 57,731 additions and 17,647 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ perform github releases but they all tend to have their set of drawbacks.
Additionally nothing handles deleting releases which we need for our rolling
`dev` release.

To handle all this this action rolls-its-own implementation using the
To handle all this, this action rolls its own implementation using the
actions/toolkit repository and packages published there. These run in a Docker
container and take various inputs to orchestrate the release from the build.

Expand Down
2 changes: 1 addition & 1 deletion src/tools/rust-analyzer/.github/workflows/autopublish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
shell: bash
run: |
git config --global user.email "runner@gha.local"
git config --global user.name "Github Action"
git config --global user.name "GitHub Action"
rm Cargo.lock
# Fix names for crates that were published before switch to kebab-case.
cargo workspaces rename --from base-db base_db
Expand Down
53 changes: 42 additions & 11 deletions src/tools/rust-analyzer/.github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,35 @@ env:
RUSTUP_MAX_RETRIES: 10

jobs:
changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
typescript: ${{ steps.filter.outputs.typescript }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@4067d885736b84de7c414f582ac45897079b0a78
id: filter
with:
filters: |
typescript:
- 'editors/code/**'
proc_macros:
- 'crates/proc-macro-api/**'
- 'crates/proc-macro-srv/**'
- 'crates/proc-macro-srv-cli/**'
- 'crates/proc-macro-test/**'
rust:
needs: changes
if: github.repository == 'rust-lang/rust-analyzer'
name: Rust
runs-on: ${{ matrix.os }}
env:
CC: deny_c
RUST_CHANNEL: "${{ needs.changes.outputs.proc_macros == 'true' && 'nightly' || 'stable'}}"
USE_SYSROOT_ABI: "${{ needs.changes.outputs.proc_macros == 'true' && '--features sysroot-abi' || ''}}"

strategy:
fail-fast: false
Expand All @@ -35,30 +58,31 @@ jobs:
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 20

- name: Install Rust toolchain
run: |
rustup update --no-self-update stable
rustup update --no-self-update ${{ env.RUST_CHANNEL }}
rustup component add rustfmt rust-src
- name: Cache Dependencies
uses: Swatinem/rust-cache@76686c56f2b581d1bb5bda44b51f7e24bd9b8b8e
uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894
with:
key: ${{ env.RUST_CHANNEL }}

- name: Bump opt-level
if: matrix.os == 'ubuntu-latest'
run: sed -i '/\[profile.dev]/a opt-level=1' Cargo.toml

- name: Compile (tests)
run: cargo test --no-run --locked
run: cargo test --no-run --locked ${{ env.USE_SYSROOT_ABI }}

# It's faster to `test` before `build` ¯\_(ツ)_/¯
- name: Compile (rust-analyzer)
if: matrix.os == 'ubuntu-latest'
run: cargo build --quiet
run: cargo build --quiet ${{ env.USE_SYSROOT_ABI }}

- name: Test
run: cargo test -- --nocapture --quiet
run: cargo test ${{ env.USE_SYSROOT_ABI }} -- --nocapture --quiet

- name: Run analysis-stats on rust-analyzer
if: matrix.os == 'ubuntu-latest'
Expand Down Expand Up @@ -90,7 +114,7 @@ jobs:
rustup target add ${{ env.targets }} ${{ env.targets_ide }}
- name: Cache Dependencies
uses: Swatinem/rust-cache@76686c56f2b581d1bb5bda44b51f7e24bd9b8b8e
uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894

- name: Check
run: |
Expand All @@ -102,6 +126,7 @@ jobs:
done
typescript:
needs: changes
if: github.repository == 'rust-lang/rust-analyzer'
name: TypeScript
strategy:
Expand All @@ -114,45 +139,51 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
if: needs.changes.outputs.typescript == 'true'

- name: Install Nodejs
uses: actions/setup-node@v3
with:
node-version: 16
if: needs.changes.outputs.typescript == 'true'

- name: Install xvfb
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-latest' && needs.changes.outputs.typescript == 'true'
run: sudo apt-get install -y xvfb

- run: npm ci
working-directory: ./editors/code
if: needs.changes.outputs.typescript == 'true'

# - run: npm audit || { sleep 10 && npm audit; } || { sleep 30 && npm audit; }
# if: runner.os == 'Linux'
# working-directory: ./editors/code

- run: npm run lint
working-directory: ./editors/code
if: needs.changes.outputs.typescript == 'true'

- name: Run VS Code tests (Linux)
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-latest' && needs.changes.outputs.typescript == 'true'
env:
VSCODE_CLI: 1
run: xvfb-run npm test
working-directory: ./editors/code

- name: Run VS Code tests (Windows)
if: matrix.os == 'windows-latest'
if: matrix.os == 'windows-latest' && needs.changes.outputs.typescript == 'true'
env:
VSCODE_CLI: 1
run: npm test
working-directory: ./editors/code

- run: npm run pretest
working-directory: ./editors/code
if: needs.changes.outputs.typescript == 'true'

- run: npm run package --scripts-prepend-node-path
working-directory: ./editors/code
if: needs.changes.outputs.typescript == 'true'

end-success:
name: bors build finished
Expand All @@ -165,7 +196,7 @@ jobs:

end-failure:
name: bors build finished
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
if: github.event.pusher.name == 'bors' && !success()
runs-on: ubuntu-latest
needs: [rust, rust-cross, typescript]
steps:
Expand Down
6 changes: 3 additions & 3 deletions src/tools/rust-analyzer/.github/workflows/publish-libs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ on:
workflow_dispatch:
push:
branches:
- main
- master
paths:
- 'lib/**'
- "lib/**"

jobs:
publish-libs:
Expand All @@ -29,7 +29,7 @@ jobs:
shell: bash
run: |
git config --global user.email "runner@gha.local"
git config --global user.name "Github Action"
git config --global user.name "GitHub Action"
# Remove r-a crates from the workspaces so we don't auto-publish them as well
sed -i 's/ "crates\/\*"//' ./Cargo.toml
cargo workspaces publish --yes --exact --from-git --no-git-commit --allow-dirty
2 changes: 1 addition & 1 deletion src/tools/rust-analyzer/.github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ jobs:
- name: Publish Extension (Code Marketplace, nightly)
if: github.ref != 'refs/heads/release' && (github.repository == 'rust-analyzer/rust-analyzer' || github.repository == 'rust-lang/rust-analyzer')
working-directory: ./editors/code
run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer-*.vsix
run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer-*.vsix --pre-release

- name: Publish Extension (OpenVSX, nightly)
if: github.ref != 'refs/heads/release' && (github.repository == 'rust-analyzer/rust-analyzer' || github.repository == 'rust-lang/rust-analyzer')
Expand Down
2 changes: 1 addition & 1 deletion src/tools/rust-analyzer/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
},
{
// Used for testing the extension with a local build of the LSP server (in `target/release`)
// with all other extendions loaded.
// with all other extensions loaded.
"name": "Run With Extensions",
"type": "extensionHost",
"request": "launch",
Expand Down
Loading

0 comments on commit 2f896da

Please sign in to comment.