4 - cron: '0 0 * * *' # midnight UTC
13 runs-on: ${{ matrix.os }}
16 os: [ubuntu-latest, windows-latest, macos-latest]
19 RUSTFLAGS: -D warnings
21 RUSTUP_MAX_RETRIES: 10
25 - name: Checkout repository
26 uses: actions/checkout@v1
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 (Windows)
33 if: matrix.os == 'windows-latest'
34 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
36 - name: Install Rust toolchain
37 uses: actions-rs/toolchain@v1
41 target: x86_64-unknown-linux-musl
44 - name: Install Nodejs
45 uses: actions/setup-node@v1
50 if: github.event_name == 'push'
54 if: github.event_name != 'push'
55 run: cargo xtask dist --nightly
57 - name: Upload artifacts
58 uses: actions/upload-artifact@v1
60 name: dist-${{ matrix.os }}
65 runs-on: ubuntu-latest
68 - name: Install Nodejs
69 uses: actions/setup-node@v1
73 - run: echo "::set-env name=TAG::$(date --iso)"
74 if: github.event_name == 'push'
75 - run: echo "::set-env name=TAG::nightly"
76 if: github.event_name == 'schedule'
77 - run: 'echo "TAG: $TAG"'
79 - name: Checkout repository
80 uses: actions/checkout@v1
82 - uses: actions/download-artifact@v1
84 name: dist-macos-latest
86 - uses: actions/download-artifact@v1
88 name: dist-ubuntu-latest
90 - uses: actions/download-artifact@v1
92 name: dist-windows-latest
96 - name: Publish Release
97 uses: ./.github/actions/github-release
101 token: ${{ secrets.GITHUB_TOKEN }}
104 working-directory: ./editors/code
106 - name: Publish Extension
107 if: github.event_name == 'push'
108 working-directory: ./editors/code
109 # token from https://dev.azure.com/rust-analyzer/
110 run: npx vsce publish 0.1.$(date +%Y%m%d) --pat ${{ secrets.MARKETPLACE_TOKEN }} --packagePath ../../dist/rust-analyzer.vsix