about summary refs log tree commit diff
path: root/src/ci/citool/tests/test-jobs.yml
blob: 512c80628574648ce14ee7e7c48ac59ce344d00e (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
runners:
  - &base-job
    env: { }

  - &job-linux-4c
    os: ubuntu-24.04
    # Free some disk space to avoid running out of space during the build.
    free_disk: true
    <<: *base-job

  - &job-linux-16c
    os: ubuntu-22.04-16core-64gb
    <<: *base-job

  - &job-macos-m1
    os: macos-14
    <<: *base-job

  - &job-windows
    os: windows-2022
    <<: *base-job

  - &job-aarch64-linux
    # Free some disk space to avoid running out of space during the build.
    free_disk: true
    os: ubuntu-22.04-arm
    <<: *base-job
envs:
  env-x86_64-apple-tests: &env-x86_64-apple-tests
    SCRIPT: ./x.py check compiletest && ./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc -- --exact
    RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
    RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
    # Ensure that host tooling is tested on our minimum supported macOS version.
    MACOSX_DEPLOYMENT_TARGET: 10.12
    MACOSX_STD_DEPLOYMENT_TARGET: 10.12
    SELECT_XCODE: /Applications/Xcode_15.2.app
    NO_LLVM_ASSERTIONS: 1
    NO_DEBUG_ASSERTIONS: 1
    NO_OVERFLOW_CHECKS: 1

  production:
    &production
    DEPLOY_BUCKET: rust-lang-ci2
    # AWS_SECRET_ACCESS_KEYs are stored in GitHub's secrets storage, named
    # AWS_SECRET_ACCESS_KEY_<keyid>. Including the key id in the name allows to
    # rotate them in a single branch while keeping the old key in another
    # branch, which wouldn't be possible if the key was named with the kind
    # (caches, artifacts...).
    CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZI5DHEBFL
    ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZN24CBO55
    AWS_REGION: us-west-1
    TOOLSTATE_PUBLISH: 1

  try:
    <<: *production

  auto:
    <<: *production

  pr:
    PR_CI_JOB: 1

# Jobs that run on each push to a pull request (PR)
# These jobs automatically inherit envs.pr, to avoid repeating
# it in each job definition.
pr:
  - name: pr-check-1
    <<: *job-linux-4c
  - name: pr-check-2
    <<: *job-linux-4c
  - name: tidy
    continue_on_error: true
    doc_url: https://foo.bar
    <<: *job-linux-4c

# Jobs that run when you perform a try build (@bors try)
# These jobs automatically inherit envs.try, to avoid repeating
# it in each job definition.
try:
  - name: dist-x86_64-linux
    env:
      CODEGEN_BACKENDS: llvm,cranelift
    <<: *job-linux-16c

# Main CI jobs that have to be green to merge a commit into master
# These jobs automatically inherit envs.auto, to avoid repeating
# it in each job definition.
auto:
  - name: aarch64-gnu
    <<: *job-aarch64-linux

  # The x86_64-gnu-llvm-18 job is split into multiple jobs to run tests in parallel.
  # x86_64-gnu-llvm-18-1 skips tests that run in x86_64-gnu-llvm-18-{2,3}.
  - name: x86_64-gnu-llvm-18-1
    env:
      RUST_BACKTRACE: 1
      READ_ONLY_SRC: "0"
      IMAGE: x86_64-gnu-llvm-18
      DOCKER_SCRIPT: stage_2_test_set1.sh
    <<: *job-linux-4c


  ####################
  #  macOS Builders  #
  ####################

  - name: aarch64-apple
    env:
      SCRIPT: ./x.py --stage 2 test --host=aarch64-apple-darwin --target=aarch64-apple-darwin
      RUST_CONFIGURE_ARGS: >-
        --enable-sanitizers
        --enable-profiler
        --set rust.jemalloc
      RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
      SELECT_XCODE: /Applications/Xcode_15.4.app
      USE_XCODE_CLANG: 1
      # Aarch64 tooling only needs to support macOS 11.0 and up as nothing else
      # supports the hardware, so only need to test it there.
      MACOSX_DEPLOYMENT_TARGET: 11.0
      MACOSX_STD_DEPLOYMENT_TARGET: 11.0
      NO_LLVM_ASSERTIONS: 1
      NO_DEBUG_ASSERTIONS: 1
      NO_OVERFLOW_CHECKS: 1
    <<: *job-macos-m1

  ######################
  #  Windows Builders  #
  ######################

  - name: dist-i686-msvc
    env:
      RUST_CONFIGURE_ARGS: >-
        --build=i686-pc-windows-msvc
        --host=i686-pc-windows-msvc
        --target=i686-pc-windows-msvc,i586-pc-windows-msvc
        --enable-full-tools
        --enable-profiler
      SCRIPT: python x.py dist bootstrap --include-default-paths
      DIST_REQUIRE_ALL_TOOLS: 1
      CODEGEN_BACKENDS: llvm,cranelift
    <<: *job-windows

# Jobs that only run when explicitly invoked via `@bors try`.
optional:
  - name: test-optional-job
    <<: *job-linux-4c