aboutsummaryrefslogtreecommitdiff
path: root/rpb-uefi.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'rpb-uefi.yaml')
-rw-r--r--rpb-uefi.yaml179
1 files changed, 2 insertions, 177 deletions
diff --git a/rpb-uefi.yaml b/rpb-uefi.yaml
index efb8a1f7c2..0c0e6ca385 100644
--- a/rpb-uefi.yaml
+++ b/rpb-uefi.yaml
@@ -63,188 +63,13 @@
- matrix-tie-parent:
node: master
builders:
+ - shell:
+ !include-raw: rpb-uefi/stable/builders.sh
- linaro-publish-token:
host: builds.96boards.org
- shell: |
#!/bin/bash
- export JOB_NAME=96boards-reference-uefi
- echo "JOB_URL: ${JOB_URL}"
- echo "BUILD_URL: ${BUILD_URL}"
- echo "WORKSPACE: ${WORKSPACE}"
- echo "BUILD_NUMBER: ${BUILD_NUMBER}"
-
- # Create lower case debug/release string for use in paths
- BUILD_TYPE="${MX_TYPE,,}"
-
- sudo apt-get update
- sudo apt-get install -y libssl-dev nasm python-requests python-crypto python-wand zip
-
- set -ex
-
- trap cleanup_exit INT TERM EXIT
-
- cleanup_exit()
- {
- cd ${WORKSPACE}
- rm -rf arm-trusted-firmware
- rm -rf uefi-tools
- rm -rf l-loader
- rm -rf OpenPlatformPkg
- rm -rf optee_os
- rm -rf out edk2/Build
- }
-
- # sbin isn't in the PATH by default and prevent to find sgdisk
- export PATH="/usr/sbin:/sbin:$PATH"
-
- # Use pre-installed linaro toolchain (GCC 5.3)
- export PATH="${HOME}/srv/toolchain/arm-tc-16.02/bin:${HOME}/srv/toolchain/arm64-tc-16.02/bin:$PATH"
-
- # Common git repositories to fetch
- UEFI_TOOLS_GIT_URL=https://git.linaro.org/uefi/uefi-tools.git
- UEFI_TOOLS_GIT_BRANCH=master
- EDK2_GIT_URL=https://github.com/tianocore/edk2.git
- EDK2_GIT_VERSION=$EDK2_VERSION
- ATF_GIT_URL=https://github.com/ARM-software/arm-trusted-firmware.git
- ATF_GIT_VERSION=$ATF_VERSION
- ## Temporarily switch to a dev tree/branch
- OPEN_PLATFORM_PKG_GIT_URL=https://git.linaro.org/uefi/OpenPlatformPkg.git
- OPEN_PLATFORM_PKG_GIT_BRANCH=master
- OPTEE_OS_GIT_URL=https://github.com/OP-TEE/optee_os.git
- OPTEE_GIT_VERSION=$OPTEE_VERSION
-
- # So we can easily identify the build number via build path
- mkdir ${BUILD_NUMBER}; cd ${BUILD_NUMBER}
-
- # Per board repositories overrides
- if [ "${MX_PLATFORM}" == "hikey" ]; then
- EDK2_GIT_URL=https://github.com/96boards-hikey/edk2.git
- EDK2_GIT_VERSION="origin/hikey-aosp"
- ATF_GIT_URL=https://github.com/96boards-hikey/arm-trusted-firmware.git
- ATF_GIT_VERSION="origin/hikey"
- OPEN_PLATFORM_PKG_GIT_URL=https://github.com/96boards-hikey/OpenPlatformPkg.git
- OPEN_PLATFORM_PKG_GIT_BRANCH=hikey-aosp
- fi
-
- # Force cap GCC build profile to GCC49, still preferred by upstream
- TOOLCHAIN=GCC49
- export AARCH64_TOOLCHAIN=GCC49
-
- # Clone the repos
- git clone -b $UEFI_TOOLS_GIT_BRANCH $UEFI_TOOLS_GIT_URL uefi-tools
- cd uefi-tools; UEFI_TOOLS_GIT_VERSION=`git log --format="%H" -1`; cd ..
-
- git clone $EDK2_GIT_URL edk2
- cd edk2; git checkout -b stable-baseline $EDK2_GIT_VERSION
- EDK2_GIT_VERSION=$(git rev-parse $EDK2_GIT_VERSION)
- cd ..
-
- git clone -b $OPEN_PLATFORM_PKG_GIT_BRANCH $OPEN_PLATFORM_PKG_GIT_URL OpenPlatformPkg
- cd edk2; rm -rf OpenPlatformPkg; ln -s ../OpenPlatformPkg; cd ..
- cd OpenPlatformPkg; OPEN_PLATFORM_PKG_GIT_VERSION=`git log --format="%H" -1`; cd ..
-
- git clone $ATF_GIT_URL arm-trusted-firmware
- cd arm-trusted-firmware; git checkout -b stable-baseline $ATF_GIT_VERSION;
- ATF_GIT_VERSION=$(git rev-parse $ATF_GIT_VERSION)
- cd ..
-
- git clone $OPTEE_OS_GIT_URL optee_os
- cd optee_os; git checkout -b stable-baseline $OPTEE_GIT_VERSION;
- OPTEE_OS_GIT_VERSION=`git log --format="%H" -1`; cd ..
-
- # Build setup
- export EDK2_DIR=${WORKSPACE}/${BUILD_NUMBER}/edk2
- export OPP_DIR=${WORKSPACE}/${BUILD_NUMBER}/OpenPlatformPkg
- export ATF_DIR=${WORKSPACE}/${BUILD_NUMBER}/arm-trusted-firmware
- export OPTEE_OS_DIR=${WORKSPACE}/${BUILD_NUMBER}/optee_os
- export UEFI_TOOLS_DIR=${WORKSPACE}/${BUILD_NUMBER}/uefi-tools
- export JENKINS_WORKSPACE=${WORKSPACE}
-
- # WORKSPACE is used by uefi-build.sh
- unset WORKSPACE
-
- # Build UEFI for the desired platform, with the specified build type
- cd ${EDK2_DIR}
- bash -x ${UEFI_TOOLS_DIR}/uefi-build.sh -T ${TOOLCHAIN} -b ${MX_TYPE} -a ${ATF_DIR} -s ${OPTEE_OS_DIR} ${MX_PLATFORM}
-
- unset WORKSPACE
- export WORKSPACE=${JENKINS_WORKSPACE}
-
- # Find out the artifacts and image dir so we can publish the correct output files
- IMAGES=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} images`
- IMAGE_DIR=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o UEFI_IMAGE_DIR get`
- BUILD_ATF=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_ATF get`
- BUILD_TOS=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_TOS get`
-
- cd ${WORKSPACE}
- mkdir -p out/${BUILD_TYPE}
- for image in ${IMAGES}; do
- cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/FV/${image} out/${BUILD_TYPE}/
- done
-
- cat > out/${BUILD_TYPE}/BUILD-INFO.txt << EOF
- Format-Version: 0.5
-
- Files-Pattern: *
- License-Type: open
- EOF
-
- if [ "${MX_PLATFORM}" == "hikey" ]; then
- # Additional components for hikey, such as fastboot and l-loader
- cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/AARCH64/AndroidFastbootApp.efi out/${BUILD_TYPE}
- cd ${WORKSPACE}/${BUILD_NUMBER}
- git clone --depth 1 https://github.com/96boards-hikey/l-loader.git
- cd l-loader
- ln -s ${WORKSPACE}/out/${BUILD_TYPE}/bl1.bin
- make
- cp -a l-loader.bin ptable*.img ${WORKSPACE}/out/${BUILD_TYPE}
- wget https://raw.githubusercontent.com/96boards/burn-boot/master/hisi-idt.py -O ${WORKSPACE}/out/${BUILD_TYPE}/hisi-idt.py
- # Ship nvme.img with UEFI binaries for convenience
- dd if=/dev/zero of=${WORKSPACE}/out/${BUILD_TYPE}/nvme.img bs=128 count=1024
-
- # Ship files needed to build OP-TEE test suite
- tar -C ${OPTEE_OS_DIR}/out -acvf \
- ${WORKSPACE}/out/${BUILD_TYPE}/optee-arm-plat-hikey.tar.xz \
- arm-plat-hikey/export-ta_arm64 arm-plat-hikey/export-ta_arm32
- fi
- cd ${WORKSPACE}
-
- # Create MD5SUMS file
- (cd out/${BUILD_TYPE} && md5sum * > MD5SUMS.txt)
-
- # Build information
- cat > out/${BUILD_TYPE}/HEADER.textile << EOF
-
- h4. Reference Platform - UEFI
-
- Tianocore EDK2 UEFI build consumed by the Reference Platform Builds
-
- Build Description:
- * Build URL: "$BUILD_URL":$BUILD_URL
- * UEFI Tools: "$UEFI_TOOLS_GIT_URL":$UEFI_TOOLS_GIT_URL
- * UEFI Tools head: $UEFI_TOOLS_GIT_VERSION
- * EDK2: "$EDK2_GIT_URL":$EDK2_GIT_URL
- * EDK2 head: $EDK2_GIT_VERSION
- * OpenPlatformPkg: "$OPEN_PLATFORM_PKG_GIT_URL":$OPEN_PLATFORM_PKG_GIT_URL
- * OpenPlatformPkg branch: $OPEN_PLATFORM_PKG_GIT_BRANCH
- * OpenPlatformPkg head: $OPEN_PLATFORM_PKG_GIT_VERSION
- EOF
-
- if [ "$BUILD_ATF" == "yes" ]; then
- cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
- * ARM Trusted Firmware: "$ATF_GIT_URL":$ATF_GIT_URL
- * ARM Trusted Firmware head: $ATF_GIT_VERSION
- EOF
- fi
-
- if [ "$BUILD_TOS" == "yes" ]; then
- cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
- * OP-TEE OS: "$OPTEE_OS_GIT_URL":$OPTEE_OS_GIT_URL
- * OP-TEE OS head: $OPTEE_OS_GIT_VERSION
- EOF
- fi
-
# Publish
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py