4 - cron: '0 0 * * *' # midnight UTC
14 RUSTFLAGS: "-D warnings -W unreachable-pub"
15 RUSTUP_MAX_RETRIES: 10
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-windows-latest
52 name: dist (Ubuntu 16.04)
55 RA_TARGET: x86_64-unknown-linux-gnu
58 - name: Checkout repository
59 uses: actions/checkout@v2
61 - name: Install Rust toolchain
62 uses: actions-rs/toolchain@v1
68 - name: Install Nodejs
69 uses: actions/setup-node@v1
74 if: github.ref == 'refs/heads/release'
75 run: cargo xtask dist --client 0.2.$GITHUB_RUN_NUMBER
78 if: github.ref != 'refs/heads/release'
79 run: cargo xtask dist --nightly --client 0.3.$GITHUB_RUN_NUMBER-nightly
81 - name: Nightly analysis-stats check
82 if: github.ref != 'refs/heads/release'
83 run: target/${{ env.RA_TARGET }}/release/rust-analyzer analysis-stats .
85 - name: Upload artifacts
86 uses: actions/upload-artifact@v1
88 name: dist-ubuntu-16.04
92 name: dist (MacOS latest)
95 RA_TARGET: x86_64-apple-darwin
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 - name: Upload artifacts
112 uses: actions/upload-artifact@v1
114 name: dist-macos-latest
118 name: dist (MacOS 11.0)
121 RA_TARGET: aarch64-apple-darwin
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 - name: Upload artifacts
139 uses: actions/upload-artifact@v1
141 name: dist-macos-11.0
146 runs-on: ubuntu-16.04
147 needs: ['dist-windows', 'dist-ubuntu', 'dist-macos-latest', 'dist-macos-11']
149 - name: Install Nodejs
150 uses: actions/setup-node@v1
154 - run: echo "TAG=$(date --iso --utc)" >> $GITHUB_ENV
155 if: github.ref == 'refs/heads/release'
156 - run: echo "TAG=nightly" >> $GITHUB_ENV
157 if: github.ref != 'refs/heads/release'
158 - run: 'echo "TAG: $TAG"'
160 - name: Checkout repository
161 uses: actions/checkout@v2
163 - run: echo "HEAD_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
164 - run: 'echo "HEAD_SHA: $HEAD_SHA"'
166 - uses: actions/download-artifact@v1
168 name: dist-macos-11.0
170 - uses: actions/download-artifact@v1
172 name: dist-macos-latest
174 - uses: actions/download-artifact@v1
176 name: dist-ubuntu-16.04
178 - uses: actions/download-artifact@v1
180 name: dist-windows-latest
184 - name: Publish Release
185 uses: ./.github/actions/github-release
189 token: ${{ secrets.GITHUB_TOKEN }}
192 working-directory: ./editors/code
194 - name: Publish Extension
195 if: github.ref == 'refs/heads/release'
196 working-directory: ./editors/code
197 # token from https://dev.azure.com/rust-analyzer/
198 run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer.vsix