10 runs-on: ${{ matrix.os }}
13 os: [ubuntu-latest, windows-latest, macos-latest]
15 RUSTFLAGS: -D warnings
17 RUSTUP_MAX_RETRIES: 10
21 - name: Checkout repository
22 uses: actions/checkout@v1
24 # We need to disable the existing toolchain to avoid updating rust-docs
25 # which takes a long time. The fastest way to do this is to rename the
26 # existing folder, as deleting it takes about as much time as not doing
27 # anything and just updating rust-docs.
28 - name: Rename existing rust toolchain (Windows)
29 if: matrix.os == 'windows-latest'
30 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
32 - name: Install Rust toolchain
33 uses: actions-rs/toolchain@v1
37 target: x86_64-unknown-linux-musl
41 if: matrix.os == 'ubuntu-latest'
42 uses: actions-rs/cargo@v1
47 args: --package ra_lsp_server --bin ra_lsp_server --release --target x86_64-unknown-linux-musl
50 if: matrix.os != 'ubuntu-latest'
51 uses: actions-rs/cargo@v1
54 args: --package ra_lsp_server --bin ra_lsp_server --release
56 - name: Create distribution dir
60 if: matrix.os == 'ubuntu-latest'
61 run: cp ./target/x86_64-unknown-linux-musl/release/ra_lsp_server ./dist/ra_lsp_server-linux && strip ./dist/ra_lsp_server-linux
64 if: matrix.os == 'macos-latest'
65 run: cp ./target/release/ra_lsp_server ./dist/ra_lsp_server-mac
68 if: matrix.os == 'windows-latest'
69 run: copy ./target/release/ra_lsp_server.exe ./dist/ra_lsp_server-windows.exe
71 - name: Upload artifacts
72 uses: actions/upload-artifact@v1
74 name: server-${{ matrix.os }}
79 runs-on: ubuntu-latest
81 - name: Checkout repository
82 uses: actions/checkout@v1
84 - name: Install Nodejs
85 uses: actions/setup-node@v1
90 working-directory: ./editors/code
92 - run: npm run package --scripts-prepend-node-path
93 working-directory: ./editors/code
95 - name: Copy vscode extension
96 run: mkdir -p ./dist/code && cp ./editors/code/*.vsix ./dist/
98 - name: Upload artifacts
99 uses: actions/upload-artifact@v1
106 runs-on: ubuntu-latest
107 needs: ['build-server', 'build-clients']
109 - name: Install Nodejs
110 uses: actions/setup-node@v1
114 - run: echo "::set-env name=TAG::$(date --iso)"
115 - run: 'echo "TAG: $TAG"'
117 - name: Checkout repository
118 uses: actions/checkout@v1
120 - uses: actions/download-artifact@v1
124 - uses: actions/download-artifact@v1
126 name: server-macos-latest
128 - uses: actions/download-artifact@v1
130 name: server-ubuntu-latest
132 - uses: actions/download-artifact@v1
134 name: server-windows-latest
136 - run: ls -all ./dist
138 - name: Create Release
140 # uses: actions/create-release@v1
141 # https://github.com/actions/create-release/pull/32
142 uses: fleskesvor/create-release@1a72e235c178bf2ae6c51a8ae36febc24568c5fe
144 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
146 tag_name: ${{ env.TAG }}
147 release_name: ${{ env.TAG }}
151 - uses: actions/upload-release-asset@v1.0.1
153 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
155 upload_url: ${{ steps.create_release.outputs.upload_url }}
156 asset_path: ./dist/ra_lsp_server-linux
157 asset_name: ra_lsp_server-linux
158 asset_content_type: application/octet-stream
160 - uses: actions/upload-release-asset@v1.0.1
162 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164 upload_url: ${{ steps.create_release.outputs.upload_url }}
165 asset_path: ./dist/ra_lsp_server-mac
166 asset_name: ra_lsp_server-mac
167 asset_content_type: application/octet-stream
169 - uses: actions/upload-release-asset@v1.0.1
171 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
173 upload_url: ${{ steps.create_release.outputs.upload_url }}
174 asset_path: ./dist/ra_lsp_server-windows.exe
175 asset_name: ra_lsp_server-windows.exe
176 asset_content_type: application/octet-stream
178 - uses: actions/upload-release-asset@v1.0.1
180 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
182 upload_url: ${{ steps.create_release.outputs.upload_url }}
183 asset_path: ./dist/rust-analyzer-0.1.0.vsix
184 asset_name: rust-analyzer-0.1.0.vsix
185 asset_content_type: application/octet-stream
188 working-directory: ./editors/code
190 - name: Publish Extension
191 working-directory: ./editors/code
192 # token from https://dev.azure.com/rust-analyzer/
193 run: npx vsce publish 0.1.$(date +%Y%m%d) --pat ${{ secrets.MARKETPLACE_TOKEN }}