4 - cron: '0 0 * * *' # midnight UTC
14 RUSTFLAGS: "-D warnings -W unreachable-pub"
15 RUSTUP_MAX_RETRIES: 10
20 runs-on: windows-latest
23 - name: Checkout repository
24 uses: actions/checkout@v2
26 # We need to disable the existing toolchain to avoid updating rust-docs
27 # which takes a long time. The fastest way to do this is to rename the
28 # existing folder, as deleting it takes about as much time as not doing
29 # anything and just updating rust-docs.
30 - name: Rename existing rust toolchain
31 run: Rename-Item C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc.old
33 - name: Install Rust toolchain
34 uses: actions-rs/toolchain@v1
43 RA_TARGET: x86_64-pc-windows-msvc
45 - name: Upload artifacts
46 uses: actions/upload-artifact@v1
48 name: dist-windows-latest
52 name: dist (Ubuntu 16.04)
56 - name: Checkout repository
57 uses: actions/checkout@v2
59 - name: Install Rust toolchain
60 uses: actions-rs/toolchain@v1
66 - name: Install Nodejs
67 uses: actions/setup-node@v1
72 if: github.ref == 'refs/heads/release'
73 run: cargo xtask dist --client 0.2.$GITHUB_RUN_NUMBER
75 RA_TARGET: x86_64-unknown-linux-gnu
78 if: github.ref != 'refs/heads/release'
79 run: cargo xtask dist --nightly --client 0.3.$GITHUB_RUN_NUMBER-nightly
81 RA_TARGET: x86_64-unknown-linux-gnu
83 - name: Nightly analysis-stats check
84 if: github.ref != 'refs/heads/release'
85 run: target/x86_64-unknown-linux-gnu/release/rust-analyzer analysis-stats .
87 - name: Upload artifacts
88 uses: actions/upload-artifact@v1
90 name: dist-ubuntu-16.04
94 name: dist (MacOS latest)
98 - name: Checkout repository
99 uses: actions/checkout@v2
101 - name: Install Rust toolchain
102 uses: actions-rs/toolchain@v1
109 run: cargo xtask dist
111 RA_TARGET: x86_64-apple-darwin
113 - name: Upload artifacts
114 uses: actions/upload-artifact@v1
116 name: dist-macos-latest
120 name: dist (MacOS 11.0)
124 - name: Checkout repository
125 uses: actions/checkout@v2
127 - name: Install Rust toolchain (beta)
128 uses: actions-rs/toolchain@v1
131 target: aarch64-apple-darwin
136 run: cargo xtask dist
138 RA_TARGET: aarch64-apple-darwin
140 - name: Upload artifacts
141 uses: actions/upload-artifact@v1
143 name: dist-macos-11.0
148 runs-on: ubuntu-16.04
149 needs: ['dist-windows', 'dist-ubuntu', 'dist-macos-latest', 'dist-macos-11']
151 - name: Install Nodejs
152 uses: actions/setup-node@v1
156 - run: echo "TAG=$(date --iso --utc)" >> $GITHUB_ENV
157 if: github.ref == 'refs/heads/release'
158 - run: echo "TAG=nightly" >> $GITHUB_ENV
159 if: github.ref != 'refs/heads/release'
160 - run: 'echo "TAG: $TAG"'
162 - name: Checkout repository
163 uses: actions/checkout@v2
165 - run: echo "HEAD_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
166 - run: 'echo "HEAD_SHA: $HEAD_SHA"'
168 - uses: actions/download-artifact@v1
170 name: dist-macos-11.0
172 - uses: actions/download-artifact@v1
174 name: dist-macos-latest
176 - uses: actions/download-artifact@v1
178 name: dist-ubuntu-16.04
180 - uses: actions/download-artifact@v1
182 name: dist-windows-latest
186 - name: Publish Release
187 uses: ./.github/actions/github-release
191 token: ${{ secrets.GITHUB_TOKEN }}
194 working-directory: ./editors/code
196 - name: Publish Extension
197 if: github.ref == 'refs/heads/release'
198 working-directory: ./editors/code
199 # token from https://dev.azure.com/rust-analyzer/
200 run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer.vsix