aboutsummaryrefslogtreecommitdiff
path: root/libc/ci/azure-install-rust.yml
blob: 31b07149bd4d8d25059b037a6ae89f37de48a43c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
steps:
  - bash: |
      set -ex
      toolchain=$TOOLCHAIN
      if [ "$toolchain" = "" ]; then
        toolchain=nightly
      fi
      if command -v rustup; then
        # Uncomment when rustup on Azure is updated
        #rustup set profile minimal
        rustup update --force $toolchain
        rustup default $toolchain
      else
        curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain --profile=minimal
        echo "##vso[task.prependpath]$HOME/.cargo/bin"
      fi
    displayName: Install rust (unix)
    condition: ne( variables['Agent.OS'], 'Windows_NT' )
  - script: |
      @echo on
      if not defined TOOLCHAIN set TOOLCHAIN=nightly
      :: Uncomment when rustup on Azure is updated
      ::rustup set profile minimal
      rustup update --no-self-update %TOOLCHAIN%-%TARGET%
      rustup default %TOOLCHAIN%-%TARGET%
    displayName: Install rust (windows)
    condition: eq( variables['Agent.OS'], 'Windows_NT' )
  - script: |
      set -ex
      if [ -n "${TARGET}" ]; then
        rustup target add $TARGET
      fi
    condition: ne( variables['Agent.OS'], 'Windows_NT' )
    displayName: Install target (unix)
  - script: |
      @echo on
      if defined TARGET rustup target add %TARGET%
    condition: eq( variables['Agent.OS'], 'Windows_NT' )
    displayName: Install target (windows)
  - script: |
      @echo on
      if "%ARCH%" == "i686" choco install mingw --x86 --force
    condition: eq( variables['Agent.OS'], 'Windows_NT' )
    displayName: Install MinGW32 (windows)
  - bash: |
      set -ex
      gcc -print-search-dirs
      find "C:\ProgramData\Chocolatey" -name "crt2*"
      find "C:\ProgramData\Chocolatey" -name "dllcrt2*"
      find "C:\ProgramData\Chocolatey" -name "libmsvcrt*"
    condition: eq( variables['Agent.OS'], 'Windows_NT' )	
    displayName: Find GCC libraries (windows)
  - bash: |
      set -ex
      if [[ -n ${ARCH_BITS} ]]; then
        for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do
          cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib"
        done
      fi
    condition: eq( variables['Agent.OS'], 'Windows_NT' )	
    displayName: Fix MinGW (windows)
  - bash: |
        set -ex
        rustc -Vv
        cargo -V
        rustup -Vv
        rustup show
        which rustc
        which cargo
        which rustup
    displayName: Query rust and cargo versions
  - script: |
      @echo on
      where gcc
    condition: eq( variables['Agent.OS'], 'Windows_NT' )
    displayName: Query gcc path
  - bash: |
      set -ex
      cargo generate-lockfile
      cargo generate-lockfile --manifest-path libc-test/Cargo.toml
    displayName: Generate lockfiles