4 - cron: '0 0 * * *' # midnight UTC
14 RUSTFLAGS: "-D warnings -W unreachable-pub"
15 RUSTUP_MAX_RETRIES: 10
18 dist-x86_64-pc-windows-msvc:
19 name: dist (x86_64-pc-windows-msvc)
20 runs-on: windows-latest
22 RA_TARGET: x86_64-pc-windows-msvc
25 - name: Checkout repository
26 uses: actions/checkout@v2
28 # We need to disable the existing toolchain to avoid updating rust-docs
29 # which takes a long time. The fastest way to do this is to rename the
30 # existing folder, as deleting it takes about as much time as not doing
31 # anything and just updating rust-docs.
32 - name: Rename existing rust toolchain
33 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
35 - name: Install Rust toolchain
36 uses: actions-rs/toolchain@v1
45 - name: Upload artifacts
46 uses: actions/upload-artifact@v1
48 name: dist-x86_64-pc-windows-msvc
51 dist-aarch64-pc-windows-msvc:
52 name: dist (aarch64-pc-windows-msvc)
53 runs-on: windows-latest
55 RA_TARGET: aarch64-pc-windows-msvc
58 - name: Checkout repository
59 uses: actions/checkout@v2
61 - name: Rename existing rust toolchain
62 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
64 - name: Install Rust toolchain
65 uses: actions-rs/toolchain@v1
68 target: aarch64-pc-windows-msvc
75 - name: Upload artifacts
76 uses: actions/upload-artifact@v1
78 name: dist-aarch64-pc-windows-msvc
81 dist-x86_64-unknown-linux-gnu:
82 name: dist (x86_64-unknown-linux-gnu)
85 RA_TARGET: x86_64-unknown-linux-gnu
88 - name: Checkout repository
89 uses: actions/checkout@v2
91 - name: Install Rust toolchain
92 uses: actions-rs/toolchain@v1
98 - name: Install Nodejs
99 uses: actions/setup-node@v1
104 if: github.ref == 'refs/heads/release'
105 run: cargo xtask dist --client 0.2.$GITHUB_RUN_NUMBER
108 if: github.ref != 'refs/heads/release'
109 run: cargo xtask dist --nightly --client 0.3.$GITHUB_RUN_NUMBER-nightly
111 - name: Nightly analysis-stats check
112 if: github.ref != 'refs/heads/release'
113 run: target/${{ env.RA_TARGET }}/release/rust-analyzer analysis-stats .
115 - name: Upload artifacts
116 uses: actions/upload-artifact@v1
118 name: dist-x86_64-unknown-linux-gnu
121 dist-x86_64-apple-darwin:
122 name: dist (x86_64-apple-darwin)
123 runs-on: macos-latest
125 RA_TARGET: x86_64-apple-darwin
128 - name: Checkout repository
129 uses: actions/checkout@v2
131 - name: Install Rust toolchain
132 uses: actions-rs/toolchain@v1
139 run: cargo xtask dist
141 - name: Upload artifacts
142 uses: actions/upload-artifact@v1
144 name: dist-x86_64-apple-darwin
147 dist-aarch64-apple-darwin:
148 name: dist (aarch64-apple-darwin)
151 RA_TARGET: aarch64-apple-darwin
154 - name: Checkout repository
155 uses: actions/checkout@v2
157 - name: Install Rust toolchain
158 uses: actions-rs/toolchain@v1
161 target: aarch64-apple-darwin
166 run: cargo xtask dist
168 - name: Upload artifacts
169 uses: actions/upload-artifact@v1
171 name: dist-aarch64-apple-darwin
176 runs-on: ubuntu-16.04
177 needs: ['dist-x86_64-pc-windows-msvc', 'dist-aarch64-pc-windows-msvc', 'dist-x86_64-unknown-linux-gnu', 'dist-x86_64-apple-darwin', 'dist-aarch64-apple-darwin']
179 - name: Install Nodejs
180 uses: actions/setup-node@v1
184 - run: echo "TAG=$(date --iso --utc)" >> $GITHUB_ENV
185 if: github.ref == 'refs/heads/release'
186 - run: echo "TAG=nightly" >> $GITHUB_ENV
187 if: github.ref != 'refs/heads/release'
188 - run: 'echo "TAG: $TAG"'
190 - name: Checkout repository
191 uses: actions/checkout@v2
193 - run: echo "HEAD_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
194 - run: 'echo "HEAD_SHA: $HEAD_SHA"'
196 - uses: actions/download-artifact@v1
198 name: dist-aarch64-apple-darwin
200 - uses: actions/download-artifact@v1
202 name: dist-x86_64-apple-darwin
204 - uses: actions/download-artifact@v1
206 name: dist-x86_64-unknown-linux-gnu
208 - uses: actions/download-artifact@v1
210 name: dist-x86_64-pc-windows-msvc
212 - uses: actions/download-artifact@v1
214 name: dist-aarch64-pc-windows-msvc
218 - name: Publish Release
219 uses: ./.github/actions/github-release
223 token: ${{ secrets.GITHUB_TOKEN }}
226 working-directory: ./editors/code
228 - name: Publish Extension
229 if: github.ref == 'refs/heads/release'
230 working-directory: ./editors/code
231 # token from https://dev.azure.com/rust-analyzer/
232 run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer.vsix