From c388432170768f65e2395cf0c753a79535d43de3 Mon Sep 17 00:00:00 2001 From: davidoh2 Date: Mon, 17 Feb 2025 13:32:42 -0800 Subject: [PATCH] added build and test workflows --- .github/workflows/XRT_aiebu-lnx_build.yml | 147 ++++++++++++++++++++++ .github/workflows/XRT_aiebu-win_build.yml | 82 ++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 .github/workflows/XRT_aiebu-lnx_build.yml create mode 100644 .github/workflows/XRT_aiebu-win_build.yml diff --git a/.github/workflows/XRT_aiebu-lnx_build.yml b/.github/workflows/XRT_aiebu-lnx_build.yml new file mode 100644 index 0000000..7dca7cd --- /dev/null +++ b/.github/workflows/XRT_aiebu-lnx_build.yml @@ -0,0 +1,147 @@ +name: XRT_aiebu-lnx_build + +# Configures trigger: +# This workflow will be triggered on a pull request created for main branch +on: + push: + branches: [ main, main-ge, ci_pipeline, ci_nightly ] + + pull_request: + branches: [ main, main-ge, ci_pipeline, ci_nightly ] + + # Allow triggering this Action/Workflow manually from the Actions tab + workflow_dispatch: + +# Run workflows in concurrency.group sequentially +concurrency: + group: xrt_aiebu_lnx_pipelines + cancel-in-progress: false + +env: + BUILD_NUMBER: ${{ github.run_number }} + +jobs: + Linux_Build_and_Test: + runs-on: [xcosimnow01-XRT_aiebu] + + defaults: + run: + shell: bash + + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Set Env Vars + run: | + echo "Setting DATE, BRANCH env vars" + echo "DATE=$(date +'%Y%m%d')" >> $GITHUB_ENV + echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV + echo "JFROG_CLI=/tools/batonroot/rodin/devkits/lnx64/jfrog/jfrog-cli" >> $GITHUB_ENV + + - name: Check Env Vars + run: | + echo "--> Check GITHUB Env Vars:" + echo " GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" + echo " GITHUB_EVENT_NAME=${GITHUB_EVENT_NAME}" + echo " GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER}" + echo " GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" + echo " GITHUB_SHA=${GITHUB_SHA}" + echo " GITHUB_REF=${GITHUB_REF}" + echo " RUNNER_NAME=${RUNNER_NAME}" + echo " DATE=${DATE}" + echo " BRANCH=${BRANCH}" + + - name: Build + run: | + RUNNER_HOSTNAME=`hostname` + echo "--> Build inside docker container on $RUNNER_HOSTNAME" + docker run --name aiebu_container --rm --volume ${GITHUB_WORKSPACE}:/home/aiebu -i ubuntu:xrt_aiebu_2 /bin/bash -c \ + "git config --global --add safe.directory /home/aiebu && \ + cd /home/aiebu/ && \ + build/build.sh && \ + chown -R 95777:10115 /home/aiebu" + + - name: create version.txt file + run: | + touch version.txt + echo "git_commit_hash: ${GITHUB_SHA}" >> version.txt + echo "branch: ${GITHUB_REF}" >> version.txt + echo "date: `date`" >> version.txt + + - name: upload to libs artifactory + if: github.event_name != 'pull_request' + run: | + export JAVA_HOME=/tools/batonroot/rodin/devkits/lnx64/jdk-11.0.16_1/ + export PATH=/tools/batonroot/rodin/devkits/lnx64/jdk-11.0.16_1/bin:$PATH + ./gradlew publishAllPublicationsToLibsReleaseRepository -PcoreRevision=release + + - name: Upload Artifact to Artifactory + run: | + cd ${GITHUB_WORKSPACE}/build/Release/ + ls -lah AIEBU-*-Linux.tar.gz + + ARTIFACT_VERSION=`ls AIEBU-*.tar.gz | cut -d'-' -f2` + ARTIFACT="AIEBU-${ARTIFACT_VERSION}-Linux-${DATE}-${GITHUB_RUN_NUMBER}.tar.gz" + ARTIFACT_DEST="xrt-ipu-dev-local/${BRANCH}/lnx/${DATE}-${GITHUB_RUN_NUMBER}/${ARTIFACT}" + + echo "--> Vars:" + echo " JFROG_CLI=$JFROG_CLI" + echo " ARTIFACT_VERSION=${ARTIFACT_VERSION}" + echo " ARTIFACT=${ARTIFACT}" + echo " ARTIFACT_DEST=${ARTIFACT_DEST}" + + echo "--> Copy and Rename Artifact:" + cd ${GITHUB_WORKSPACE}/build/Release/ + ls -lah ./AIEBU-${ARTIFACT_VERSION}-Linux.tar.gz + echo " Renaming artifact to: ${ARTIFACT}" + cp ./AIEBU-${ARTIFACT_VERSION}-Linux.tar.gz ${ARTIFACT} + ls -lah ./${ARTIFACT} + + echo "--> Uploading to Artifactory:" + ${JFROG_CLI} rt upload ${ARTIFACT} ${ARTIFACT_DEST} \ + --insecure-tls=true \ + --flat \ + --props "REPO=${GITHUB_REPOSITORY};BRANCH=${GITHUB_REF##*/};COMMIT_SHA=${GITHUB_SHA};GH_WS=${GITHUB_WORKSPACE};RUNNER=${RUNNER_NAME}" + echo " Artifact location: https://xcoartifactory/ui/native/${ARTIFACT_DEST}" + + echo "--> Uploading to LATEST" + ARTIFACT_ORIG="AIEBU-${ARTIFACT_VERSION}-Linux.tar.gz" + ARTIFACT_LATEST="/xrt-ipu-dev-local/${BRANCH}/lnx/LATEST/${ARTIFACT_ORIG}" + ${JFROG_CLI} rt upload ${ARTIFACT_ORIG} ${ARTIFACT_LATEST} \ + --insecure-tls=true \ + --flat \ + --props "REPO=${GITHUB_REPOSITORY};BRANCH=${GITHUB_REF##*/};RUN_NUMMBER=${GITHUB_RUN_NUMBER};COMMIT_SHA=${GITHUB_SHA};TARGET=${ARTIFACT_DEST}" + echo " LATEST artifact location: https://xcoartifactory/ui/native/${ARTIFACT_LATEST}" + + - name: Collect Error Logs If Build Failed + if: failure() + continue-on-error: true + run: | + echo "--> Workflow failure detected: cleaning up and collecting LastTest.log for debugging" + docker run --name aiebu_container --rm --volume ${GITHUB_WORKSPACE}:/home/aiebu -i ubuntu:xrt_aiebu_2 /bin/bash -c \ + "chown -R 95777:10115 /home/aiebu" + + echo "--> Create debug log archive" + LOG_DIR="/scratch/XRT_aiebu/debug/" + LOG_FILE="LastTest-${BRANCH}-${DATE}-${GITHUB_RUN_NUMBER}.tgz" + LOG_DEST="xrt-ipu-dev-local/${BRANCH}/lnx/${DATE}-${GITHUB_RUN_NUMBER}/${LOG_FILE}" + RUNNER_HOSTNAME=`hostname` + + cd ${GITHUB_WORKSPACE}/ + tar cvfz ${LOG_DIR}/${LOG_FILE} ./build/Debug/Testing/Temporary/* + echo " Created ${RUNNER_HOSTNAME}:${LOG_DIR}/${LOG_FILE}" + + echo "--> Uploading Log Archive to Artifactory" + ${JFROG_CLI} rt upload ${LOG_DIR}/${LOG_FILE} ${LOG_DEST} --insecure-tls=true --flat + echo " Log location: https://xcoartifactory/ui/native/${LOG_DEST}" + + - name: Clean Up and Delete Docker Container If It Still Exists + if: always() + continue-on-error: true + run: | + echo "--> Docker container cleanup" + docker stop aiebu_container + docker rm aiebu_container + docker ps -a diff --git a/.github/workflows/XRT_aiebu-win_build.yml b/.github/workflows/XRT_aiebu-win_build.yml new file mode 100644 index 0000000..270ac29 --- /dev/null +++ b/.github/workflows/XRT_aiebu-win_build.yml @@ -0,0 +1,82 @@ +name: XRT_aiebu-win_build + +# Configures trigger: +# This workflow will be triggered on a pull request created for main branch +on: + push: + branches: [ main, main-ge, ci_pipeline ] + + pull_request: + branches: [ main, main-ge, ci_pipeline ] + + # Allow triggering this Action/Workflow manually from the Actions tab + workflow_dispatch: + +# Run workflows in concurrency.group sequentially +concurrency: + group: xrt_aiebu_win_pipelines + cancel-in-progress: false + +jobs: + Windows_Build_and_Test: + runs-on: [xcoengvm224003-XRT_aiebu] + + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Check Env Vars + run: | + echo "--> Check GITHUB Env Vars:" + echo " GITHUB_REPOSITORY=${{ github.REPOSITORY }}" + echo " GITHUB_EVENT_NAME=${{ github.EVENT_NAME }}" + echo " GITHUB_RUN_NUMBER=${{ github.RUN_NUMBER }}" + echo " GITHUB_WORKSPACE=${{ github.WORKSPACE }}" + echo " GITHUB_SHA=${{ github.SHA }}" + echo " GITHUB_REF=${{ github.REF }}" + + - name: Build + run: | + $RUNNER_HOSTNAME=hostname + echo "--> Building win target on $RUNNER_HOSTNAME" + cd ${{ github.WORKSPACE }}\build + .\build22.bat -boost C:\Xilinx\XRT\ext.new + # artifact (target: C:\scratch\XRT_aiebu\actions-runner\_work\aiebu\build\WRelease\AIEBU-0.1.1-win64.zip) + + - name: Upload Artifact to Artifactory + run: | + cd ${{ github.WORKSPACE }}\build\WRelease\ + dir AIEBU-*-win64.zip + + $DATE=Get-Date -format "yyyyMMdd" + $BRANCH="${{ github.REF }}".split("/")[-1] + + $ARTIFACT_FILE=Get-ChildItem -Filter "AIEBU-*-win64.zip" + $ARTIFACT_VERSION=($ARTIFACT_FILE[0].Name -split '-')[1] + $ARTIFACT_SRC="AIEBU-$ARTIFACT_VERSION-win64-$DATE-${{ github.RUN_NUMBER }}.zip" + $ARTIFACT_DEST="xrt-ipu-dev-local/$BRANCH/win/$DATE-${{ github.RUN_NUMBER }}/$ARTIFACT_SRC" + + Copy-Item .\$ARTIFACT_FILE .\$ARTIFACT_SRC + dir AIEBU-*.zip + + echo "--> Vars used for Jfrog CLI" + echo " BRANCH=$BRANCH" + echo " DATE=$DATE" + echo " ARTIFACT_SRC=$ARTIFACT_SRC" + echo " ARTIFACT_DEST=$ARTIFACT_DEST" + + echo "--> Uploading to Artifactory:" + jf rt upload $ARTIFACT_SRC $ARTIFACT_DEST ` + --insecure-tls=true ` + --flat + echo " Artifact location:" + echo " https://xcoartifactory/ui/native/$ARTIFACT_DEST" + + echo "--> Uploading to LATEST" + $ARTIFACT_LATEST="/xrt-ipu-dev-local/$BRANCH/win/LATEST/$ARTIFACT_FILE" + jf rt upload $ARTIFACT_SRC $ARTIFACT_LATEST ` + --insecure-tls=true ` + --flat + echo " LATEST artifact location:" + echo " https://xcoartifactory/ui/native/$ARTIFACT_LATEST"