| --- | |
| steps: | |
| - label: "Get release name" | |
| agents: | |
| - "queue=default" | |
| plugins: | |
| docker#v3.8.0: | |
| always-pull: true | |
| environment: | |
| - ANDROID_HOME | |
| - ANDROID_NDK_HOME | |
| - BUILDKITE_ARTIFACT_UPLOAD_DESTINATION | |
| image: gcr.io/bazel-public/ubuntu2404 | |
| network: host | |
| privileged: true | |
| propagate-environment: true | |
| propagate-uid-gid: true | |
| shell: ["/bin/bash", "-e", "-c"] | |
| volumes: | |
| - "/etc/group:/etc/group:ro" | |
| - "/etc/passwd:/etc/passwd:ro" | |
| - "/etc/shadow:/etc/shadow:ro" | |
| - "/opt/android-ndk-r15c:/opt/android-ndk-r15c:ro" | |
| - "/opt/android-sdk-linux:/opt/android-sdk-linux:ro" | |
| - "/var/lib/buildkite-agent:/var/lib/buildkite-agent" | |
| - "/var/lib/gitmirrors:/var/lib/gitmirrors:ro" | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| release_name=${BUILDKITE_BRANCH} | |
| echo "release_name = \"\$release_name\"" | |
| buildkite-agent meta-data set "release_name" "\$release_name" | |
| - wait | |
| - label: "Rocky Linux 8" | |
| agents: | |
| - "queue=default" | |
| plugins: | |
| docker#v3.8.0: | |
| always-pull: true | |
| environment: | |
| - ANDROID_HOME | |
| - ANDROID_NDK_HOME | |
| - BUILDKITE_ARTIFACT_UPLOAD_DESTINATION | |
| image: gcr.io/bazel-public/rockylinux8-releaser | |
| network: host | |
| privileged: true | |
| propagate-environment: true | |
| propagate-uid-gid: true | |
| shell: ["/bin/bash", "-e", "-c"] | |
| volumes: | |
| - "/etc/group:/etc/group:ro" | |
| - "/etc/passwd:/etc/passwd:ro" | |
| - "/etc/shadow:/etc/shadow:ro" | |
| - "/opt/android-ndk-r15c:/opt/android-ndk-r15c:ro" | |
| - "/opt/android-sdk-linux:/opt/android-sdk-linux:ro" | |
| - "/var/lib/buildkite-agent:/var/lib/buildkite-agent" | |
| - "/var/lib/gitmirrors:/var/lib/gitmirrors:ro" | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| release_name=$(buildkite-agent meta-data get "release_name") | |
| echo "release_name = \"\$release_name\"" | |
| bazel build --sandbox_tmpfs_path=/tmp //src:bazel | |
| mkdir output | |
| cp bazel-bin/src/bazel output/bazel | |
| output/bazel build \ | |
| -c opt \ | |
| --stamp \ | |
| --sandbox_tmpfs_path=/tmp \ | |
| --embed_label "\${release_name}" \ | |
| --workspace_status_command=scripts/ci/build_status_command.sh \ | |
| src/bazel \ | |
| src/bazel_nojdk \ | |
| scripts/packages/with-jdk/install.sh \ | |
| scripts/packages/debian/bazel-debian.deb \ | |
| scripts/packages/debian/bazel.dsc \ | |
| scripts/packages/debian/bazel.tar.gz \ | |
| bazel-distfile.zip | |
| mkdir artifacts | |
| cp "bazel-bin/src/bazel" "artifacts/bazel-\${release_name}-linux-x86_64" | |
| cp "bazel-bin/src/bazel_nojdk" "artifacts/bazel_nojdk-\${release_name}-linux-x86_64" | |
| cp "bazel-bin/scripts/packages/with-jdk/install.sh" "artifacts/bazel-\${release_name}-installer-linux-x86_64.sh" | |
| cp "bazel-bin/scripts/packages/debian/bazel-debian.deb" "artifacts/bazel_\${release_name}-linux-x86_64.deb" | |
| cp "bazel-bin/scripts/packages/debian/bazel.dsc" "artifacts/bazel_\${release_name}.dsc" | |
| cp "bazel-bin/scripts/packages/debian/bazel.tar.gz" "artifacts/bazel_\${release_name}.tar.gz" | |
| cp "bazel-bin/bazel-distfile.zip" "artifacts/bazel-\${release_name}-dist.zip" | |
| cd artifacts | |
| buildkite-agent artifact upload "*" | |
| - label: macOS | |
| agents: | |
| - queue=macos | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| release_name=$(buildkite-agent meta-data get "release_name") | |
| echo "release_name = \"\$release_name\"" | |
| # Switch to Xcode 10.3 so that the Bazel release we build is still | |
| # compatible with macOS High Sierra. | |
| /usr/bin/sudo /usr/bin/xcode-select --switch /Applications/Xcode10.3.app | |
| /usr/bin/sudo /usr/bin/xcodebuild -runFirstLaunch | |
| bazel build //src:bazel | |
| mkdir output | |
| cp bazel-bin/src/bazel output/bazel | |
| output/bazel build \ | |
| --define IPHONE_SDK=1 \ | |
| -c opt \ | |
| --stamp \ | |
| --embed_label "\${release_name}" \ | |
| --workspace_status_command=scripts/ci/build_status_command.sh \ | |
| src/bazel \ | |
| src/bazel_nojdk \ | |
| scripts/packages/with-jdk/install.sh | |
| mkdir artifacts | |
| cp "bazel-bin/src/bazel" "artifacts/bazel-\${release_name}-darwin-x86_64" | |
| cp "bazel-bin/src/bazel_nojdk" "artifacts/bazel_nojdk-\${release_name}-darwin-x86_64" | |
| cp "bazel-bin/scripts/packages/with-jdk/install.sh" "artifacts/bazel-\${release_name}-installer-darwin-x86_64.sh" | |
| cd artifacts | |
| buildkite-agent artifact upload "*" | |
| - label: Windows | |
| agents: | |
| - queue=windows | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| buildkite-agent meta-data get "release_name" > release_name.txt | |
| SET /p RELEASE_NAME=<release_name.txt | |
| DEL /q release_name.txt | |
| echo Release: %RELEASE_NAME% | |
| bazel build //src:bazel.exe | |
| mkdir output | |
| copy bazel-bin\src\bazel.exe output\bazel.exe | |
| output\bazel build -c opt --copt=-w --host_copt=-w --stamp --embed_label %RELEASE_NAME% src/bazel scripts/packages/bazel.zip | |
| mkdir artifacts | |
| move bazel-bin\src\bazel artifacts\bazel-%RELEASE_NAME%-windows-x86_64.exe | |
| move bazel-bin\scripts\packages\bazel.zip artifacts\bazel-%RELEASE_NAME%-windows-x86_64.zip | |
| cd artifacts | |
| buildkite-agent artifact upload "*" | |
| - wait | |
| - label: "Rocky Linux 8" | |
| agents: | |
| - "queue=default" | |
| plugins: | |
| docker#v3.8.0: | |
| always-pull: true | |
| environment: | |
| - ANDROID_HOME | |
| - ANDROID_NDK_HOME | |
| - BUILDKITE_ARTIFACT_UPLOAD_DESTINATION | |
| image: gcr.io/bazel-public/rockylinux8-java8 | |
| network: host | |
| privileged: true | |
| propagate-environment: true | |
| propagate-uid-gid: true | |
| shell: ["/bin/bash", "-e", "-c"] | |
| volumes: | |
| - "/etc/group:/etc/group:ro" | |
| - "/etc/passwd:/etc/passwd:ro" | |
| - "/etc/shadow:/etc/shadow:ro" | |
| - "/opt/android-ndk-r15c:/opt/android-ndk-r15c:ro" | |
| - "/opt/android-sdk-linux:/opt/android-sdk-linux:ro" | |
| - "/var/lib/buildkite-agent:/var/lib/buildkite-agent" | |
| - "/var/lib/gitmirrors:/var/lib/gitmirrors:ro" | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| release_name=$(buildkite-agent meta-data get "release_name") | |
| echo "release_name = \"\$release_name\"" | |
| buildkite-agent artifact download "bazel-\${release_name}-linux-x86_64" . | |
| chmod +x "bazel-\${release_name}-linux-x86_64" | |
| "./bazel-\${release_name}-linux-x86_64" info | |
| - label: "Test on macOS" | |
| agents: | |
| - queue=macos | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| release_name=$(buildkite-agent meta-data get "release_name") | |
| echo "release_name = \"\$release_name\"" | |
| buildkite-agent artifact download "bazel-\${release_name}-darwin-x86_64" . | |
| chmod +x "bazel-\${release_name}-darwin-x86_64" | |
| "./bazel-\${release_name}-darwin-x86_64" info | |
| - label: "Test on Windows" | |
| agents: | |
| - queue=windows | |
| command: | | |
| git fetch origin master | |
| git fetch --force origin refs/notes/*:refs/notes/* | |
| git checkout ${BUILDKITE_BRANCH} | |
| buildkite-agent meta-data get "release_name" > release_name.txt | |
| SET /p RELEASE_NAME=<release_name.txt | |
| DEL /q release_name.txt | |
| echo Release: %RELEASE_NAME% | |
| buildkite-agent artifact download bazel-%RELEASE_NAME%-windows-x86_64.exe . | |
| bazel-%RELEASE_NAME%-windows-x86_64.exe info |