Skip to content

Commit

Permalink
Auto merge of rust-lang#133912 - MarcoIeni:test-codebuild-runner, r=<…
Browse files Browse the repository at this point in the history
…try>

[experiment] test code build runner

try-job: x86_64-gnu
  • Loading branch information
bors committed Dec 12, 2024
2 parents 8e37e15 + a595285 commit 0056919
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 2 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ jobs:
- name: install awscli
run: src/ci/scripts/install-awscli.sh

- if: contains(matrix.os, 'codebuild-ubuntu')
name: Install sotftware for codebuild
run: chmod +x src/ci/scripts/ubuntu-codebuild.sh && ./src/ci/scripts/ubuntu-codebuild.sh

- name: install sccache
run: src/ci/scripts/install-sccache.sh

Expand Down Expand Up @@ -174,6 +178,8 @@ jobs:

- name: enable ipv6 on Docker
run: src/ci/scripts/enable-docker-ipv6.sh
# Don't run on codebuild because systemctl is not available
if: ${{ !contains(matrix.os, 'codebuild-ubuntu') }}

# Disable automatic line ending conversion (again). On Windows, when we're
# installing dependencies, something switches the git configuration directory or
Expand Down
6 changes: 5 additions & 1 deletion src/ci/docker/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,12 @@ else
# LOCAL_USER_ID will map to a different subuid range on the host.
# The "keep-id" mode maps the current UID directly into the container.
args="$args --env NO_CHANGE_USER=1 --userns=keep-id"
else
elif [[ "$id" != 0 ]]; then
args="$args --env LOCAL_USER_ID=$id"
else
# If we're running as root, we don't want to run the container as root,
# so we set id `1001` instead of `0`.
args="$args --env LOCAL_USER_ID=1001"
fi
fi

Expand Down
17 changes: 17 additions & 0 deletions src/ci/github-actions/calculate-job-matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,21 @@ def format_run_type(run_type: WorkflowRunType) -> str:
raise AssertionError()


# Add new function before main:
def substitute_github_vars(jobs: list) -> list:
"""Replace GitHub context variables with environment variables in job configs."""
for job in jobs:
if "os" in job:
job["os"] = job["os"].replace(
"${{ github.run_id }}",
os.environ["GITHUB_RUN_ID"]
).replace(
"${{ github.run_attempt }}",
os.environ["GITHUB_RUN_ATTEMPT"]
)
return jobs


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)

Expand All @@ -199,6 +214,8 @@ def format_run_type(run_type: WorkflowRunType) -> str:
if run_type is not None:
jobs = calculate_jobs(run_type, data)
jobs = skip_jobs(jobs, channel)
jobs = substitute_github_vars(jobs)


if not jobs:
raise Exception("Scheduled job list is empty, this is an error")
Expand Down
6 changes: 5 additions & 1 deletion src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ runners:
- &job-linux-8c-aarch64
os: ubuntu-22.04-arm64-8core-32gb

- &job-linux-8c-codebuild
os: codebuild-ubuntu-22-8c-${{ github.run_id }}-${{ github.run_attempt }}
<<: *base-job

envs:
env-x86_64-apple-tests: &env-x86_64-apple-tests
SCRIPT: ./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc -- --exact
Expand Down Expand Up @@ -284,7 +288,7 @@ auto:
<<: *job-linux-4c

- image: x86_64-gnu
<<: *job-linux-4c
<<: *job-linux-8c-codebuild

# This job ensures commits landing on nightly still pass the full
# test suite on the stable channel. There are some UI tests that
Expand Down
6 changes: 6 additions & 0 deletions src/ci/scripts/enable-docker-ipv6.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ IFS=$'\n\t'

source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"

# Print docker version
docker --version
lsb_release -a
echo "is docker active"
systemctl is-active docker

if isLinux; then
sudo mkdir -p /etc/docker
echo '{"ipv6":true,"fixed-cidr-v6":"fd9a:8454:6789:13f7::/64"}' \
Expand Down
4 changes: 4 additions & 0 deletions src/ci/scripts/ubuntu-codebuild.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

# apt-get update
# apt-get install -y docker-buildx

0 comments on commit 0056919

Please sign in to comment.