Skip to content

XRT CI XTI

XRT CI XTI #201

Workflow file for this run

name: XRT CI XTI
env:
RELEASE: '2024.2'
PIPELINE: 'xrt'
ENV: 'test'
on:
pull_request_target:
types: [opened, synchronize]
# push:
workflow_dispatch:
workflow_call:
# schedule:
# - cron: '40 4 * * *'
jobs:
# authorize:
# runs-on: Ubuntu-22.04
# steps:
# - name: Checkout private repository
# uses: actions/checkout@v4
# with:
# repository: actions-int/composite-workflows
# github-server-url: ${{ secrets.SERVER_URL }}
# token: ${{ secrets.ACCESS_TOKEN }}
# path: composite-workflows
# ref: main
# - name: authorize
# uses: ./composite-workflows/authorize
# with:
# accessToken: ${{ secrets.CI_CLOUD_TOKEN }}
# pullRequestUser: ${{ github.event.pull_request.user.login }}
build:
## needs: authorize
strategy:
matrix:
include:
- os: centos78
packageType: rpm
- os: centos8
packageType: rpm
- os: rhel9
packageType: rpm
- os: ubuntu2004
packageType: deb
- os: ubuntu2204
packageType: deb
runs-on: [self-hosted, Ubuntu-22.04]
# runs-on: [apu]
steps:
- name: Set env variables
run: |
echo "Setting environment variables..."
echo "XRT_VERSION_PATCH=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV
- name: Checkout PR
uses: actions/checkout@v3
with:
# repository: "${{ github.event.pull_request.head.repo.full_name }}"
# ref: "${{ github.event.pull_request.head.ref }}"
repository: "Xilinx/XRT"
ref: "master"
fetch-depth: 0
path: ${{ github.workspace }}/${{ github.run_number }}
submodules: recursive
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
github-server-url: ${{ secrets.SERVER_URL }}
token: ${{ secrets.ACCESS_TOKEN }}
path: composite-workflows
ref: xti
- name: XRT build
uses: ./composite-workflows/build
with:
pipeline: ${{ env.PIPELINE }}
osVersion: ${{ matrix.os }}
packageType: ${{ matrix.packageType }}
workspace: ${{ github.workspace }}
buildNumber: ${{ github.run_number }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
appConfig: ${{ secrets.APP_CONFIG }}
appConfig1: ${{ secrets.APP_CONFIG1 }}
appConfig2: ${{ secrets.APP_CONFIG2 }}
appConfig3: ${{ secrets.APP_CONFIG3 }}
windows-build:
runs-on: Windows
steps:
- name: Checkout PR
uses: actions/checkout@v4
with:
repository: "Xilinx/XRT"
ref: "master"
fetch-depth: 0
path: ${{ github.workspace }}/${{ github.run_number }}
submodules: recursive
persist-credentials: false
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
github-server-url: ${{ secrets.SERVER_URL }}
token: ${{ secrets.ACCESS_TOKEN }}
path: composite-workflows
ref: xti
- name: XRT windows build
uses: ./composite-workflows/windows-build
with:
workspace: ${{ github.workspace }}/${{ github.run_number }}/build
buildNumber: ${{ github.run_number }}
release: ${{ env.RELEASE }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
workspaceg: ${{ github.workspace }}
github-server-url: ${{ secrets.SERVER_URL }}
build-cmd: "build22.bat -opt -hip"
vs-version: "2022"
apu-package-build:
# runs-on: apu
runs-on: [self-hosted, Ubuntu-22.04]
steps:
- name: Set env variables
run: |
echo "Setting environment variables..."
echo "XRT_VERSION_PATCH=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
# echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV
- name: Checkout PR
uses: actions/checkout@v2
with:
# repository: "${{ github.event.pull_request.head.repo.full_name }}"
# ref: "${{ github.event.pull_request.head.ref }}"
repository: "Xilinx/XRT"
ref: "master"
fetch-depth: 0
path: ${{ github.workspace }}/${{ github.run_number }}
submodules: recursive
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: composite-workflows
ref: xti
- name: Apu package build for XRT
uses: ./composite-workflows/apu-package
with:
pipeline: ${{ env.PIPELINE }}
workspace: ${{ github.workspace }}
buildNumber: ${{ github.run_number }}
apuPackage: 'True'
release: ${{ env.RELEASE }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
appConfig: ${{ secrets.APP_CONFIG }}
appConfig1: ${{ secrets.APP_CONFIG1 }}
appConfig2: ${{ secrets.APP_CONFIG2 }}
appConfig3: ${{ secrets.APP_CONFIG3 }}
package-download:
needs: build
runs-on: [self-hosted, Ubuntu-22.04]
steps:
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: composite-workflows
ref: xti
- name: Use composite action package download
uses: ./composite-workflows/package-download
with:
runNumber: ${{ github.run_number }}
pipeline: ${{ env.PIPELINE }}
env: ${{ env.ENV }}
sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
NPATH: ${{ secrets.NPATH }}
USER: ${{ secrets.USER }}
github-server-url: ${{ secrets.SERVER_URL }}
extract-platforms:
needs: package-download
runs-on: [self-hosted, Ubuntu-22.04]
steps:
- name: Checkout extraction Action repository
uses: actions/checkout@v3
with:
repository: actions-int/extraction-action
# ref: 'v0.0.1'
ref: 'extraction_action'
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: ./.github/actions/extraction-action
- name: Extracting ${{ inputs.boardType }} ${{ inputs.boardMode }} platforms
uses: ./.github/actions/extraction-action
id: extract
with:
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardMode: "hw"
outputs:
board_list: ${{ steps.extract.outputs.board_list }}
pcie-hw-tests:
needs: extract-platforms
# runs-on: [xrt, trx]
runs-on: [self-hosted, Ubuntu-22.04]
strategy:
matrix:
board_list: ${{ fromJson(needs.extract-platforms.outputs.board_list) }}
steps:
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: composite-workflows
ref: xti
- name: Use composite action for pcie-hw
uses: ./composite-workflows/pcie-hw
with:
organization: ${{ github.repository }}
runNumber: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}_${{ github.run_attempt }}
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardState: "gating"
boardMode: "hw"
workspace: ${{ github.workspace }}
USER: ${{ secrets.USER }}
board: ${{ matrix.board_list }}
runnerName: ${{ runner.name }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
apiKey: ${{ secrets.apiKey }}
NPATH: ${{ secrets.NPATH }}
github-server-url: ${{ secrets.SERVER_URL }}
# pcie-sw-emulation-tests_centos_78:
# needs: package-download
# runs-on: [self-hosted, Ubuntu-22.04]
# # strategy:
# # matrix:
# # os_list: ['centos_7.8', 'centos_8.1']
# steps:
# - name: Checkout private repository
# uses: actions/checkout@v3
# with:
# repository: actions-int/composite-workflows
# token: ${{ secrets.ACCESS_TOKEN }}
# github-server-url: ${{ secrets.SERVER_URL }}
# path: composite-workflows
# ref: xti
# - name: Use composite action for pcie-emulation
# uses: ./composite-workflows/emulation
# with:
# organization: ${{ github.repository }}
# run_number: ${{ github.run_number }}
# buildNumber: ${{ github.run_number }}_${{ github.run_attempt }}
# release: ${{ env.RELEASE }}
# env: ${{ env.ENV }}
# pipeline: ${{ env.PIPELINE }}
# boardType: "pcie"
# boardState: "gating"
# boardMode: "sw_emu"
# os: "centos_7.8"
# runnerName: ${{ runner.name }}
# sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
# apiKey: ${{ secrets.apiKey }}
# accessToken: ${{ secrets.ACCESS_TOKEN }}
# USER: ${{ secrets.USER }}
# NPATH: ${{ secrets.NPATH }}
# github-server-url: ${{ secrets.SERVER_URL }}
pcie-sw-emulation-tests_centos_81:
needs: package-download
runs-on: [self-hosted, Ubuntu-22.04]
# strategy:
# matrix:
# os_list: ['centos_7.8', 'centos_8.1']
steps:
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: composite-workflows
ref: xti
- name: Use composite action for pcie-hw
uses: ./composite-workflows/emulation
with:
organization: ${{ github.repository }}
run_number: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}_${{ github.run_attempt }}
workspace: ${{ github.workspace }}
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardState: "gating"
boardMode: "sw_emu"
os: "centos_8.1"
runnerName: ${{ runner.name }}
sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
apiKey: ${{ secrets.apiKey }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
USER: ${{ secrets.USER }}
NPATH: ${{ secrets.NPATH }}
github-server-url: ${{ secrets.SERVER_URL }}
# pcie-hw-emulation-tests_centos_78:
# needs: package-download
# runs-on: [self-hosted, Ubuntu-22.04]
# # strategy:
# # matrix:
# # os_list: ['centos_7.8', 'centos_8.1']
# steps:
# - name: Checkout private repository
# uses: actions/checkout@v3
# with:
# repository: actions-int/composite-workflows
# token: ${{ secrets.ACCESS_TOKEN }}
# github-server-url: ${{ secrets.SERVER_URL }}
# path: composite-workflows
# ref: xti
# - name: Use composite action for pcie-hw
# uses: ./composite-workflows/emulation
# with:
# organization: ${{ github.repository }}
# run_number: ${{ github.run_number }}
# buildNumber: ${{ github.run_number }}_${{ github.run_attempt }}
# release: ${{ env.RELEASE }}
# env: ${{ env.ENV }}
# pipeline: ${{ env.PIPELINE }}
# boardType: "pcie"
# boardState: "gating"
# boardMode: "hw_emu"
# os: "centos_7.8"
# runnerName: ${{ runner.name }}
# sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
# apiKey: ${{ secrets.apiKey }}
# accessToken: ${{ secrets.ACCESS_TOKEN }}
# USER: ${{ secrets.USER }}
# NPATH: ${{ secrets.NPATH }}
# github-server-url: ${{ secrets.SERVER_URL }}
pcie-hw-emulation-tests_centos_81:
needs: package-download
runs-on: [self-hosted, Ubuntu-22.04]
# strategy:
# matrix:
# os_list: ['centos_7.8', 'centos_8.1']
steps:
- name: Checkout private repository
uses: actions/checkout@v3
with:
repository: actions-int/composite-workflows
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: composite-workflows
ref: xti
- name: Use composite action for pcie-hw
uses: ./composite-workflows/emulation
with:
organization: ${{ github.repository }}
run_number: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}_${{ github.run_attempt }}
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardState: "gating"
boardMode: "hw_emu"
os: "centos_8.1"
runnerName: ${{ runner.name }}
sshKey: ${{ secrets.CI_PRIVATE_SSH_KEY }}
apiKey: ${{ secrets.apiKey }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
USER: ${{ secrets.USER }}
NPATH: ${{ secrets.NPATH }}
github-server-url: ${{ secrets.SERVER_URL }}
workspace: ${{ github.workspace }}
test-summary:
runs-on: [self-hosted, Ubuntu-22.04]
needs: [pcie-sw-emulation-tests_centos_81, pcie-hw-emulation-tests_centos_81]
# needs: [pcie-hw-tests]
if: always()
steps:
- name: Checkout test summary Action repository
uses: actions/checkout@v3
with:
repository: actions-int/XOAH-URL-action
ref: 'XOAH_URL_action'
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: ./.github/actions/XOAH-URL-action
- name: Generate test summary URL
id: summary
uses: ./.github/actions/XOAH-URL-action
with:
pipeline: ${{ env.PIPELINE }}
release: ${{ env.RELEASE }}
runNumber: ${{ github.run_number }}_${{ github.run_attempt }}
env: ${{ env.ENV }}
- name: Print test summary URL
run: |
# echo "test summary URL: ${{ steps.summary.outputs.url }}" >> $GITHUB_STEP_SUMMARY
echo '### [tests logs summary](${{ steps.summary.outputs.url }})' >> $GITHUB_STEP_SUMMARY
cancel_run:
runs-on: [self-hosted, Ubuntu-22.04]
needs: test-summary
steps:
- name: Cancel Workflow Run
if: steps.check_status.outputs.status == 'in_progress'
run: |
echo "Cancelling Workflow Run..."
curl \
-X POST \
-H "Authorization: Bearer ${{ secrets.CI_CLOUD_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}/cancel"
delete_logs:
runs-on: [self-hosted, Ubuntu-22.04]
needs: cancel_run
if: always()
steps:
- name: Set env variables
run: |
echo "Setting environment variables..."
echo "RUN_ID=${GITHUB_RUN_ID}" >> $GITHUB_ENV
echo "PATH=/usr/bin:$PATH" >> $GITHUB_ENV
- name: Delete Run Logs
run: |
curl -L -X DELETE -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.CI_CLOUD_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/Xilinx/preflight-check/actions/runs/${{ github.run_id }}/logs"
# RUN_ID=${{ github.run_id }}
# curl -L \
# -X DELETE \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.CI_CLOUD_TOKEN }}" \
# -H "X-GitHub-Api-Version: 2022-11-28" \
# "https://api.github.com/repos/Xilinx/preflight-check/actions/runs/${{ github.run_id }}/logs"
slack_notify:
name: "Notify"
needs: [build, delete_logs]
runs-on: [self-hosted, Ubuntu-22.04]
# if: always() || contains(needs.*.result, 'failure') && ${{ github.event_name != 'pull_request' }}
if: (always() || contains(needs.*.result, 'failure')) && github.event_name != 'pull_request'
steps:
- name: Send GitHub trigger to Slack Workflow Builder
run: echo $([[ "${{ needs.build.result }}" == "success" && "${{ needs.delete_logs.result }}" == "success" ]] && echo "success" || echo "failure")
# run: |
# if [[ "${{ needs.build.result }}" == "success" && "${{ needs.delete_logs.result }}" == "success" ]]; then
# echo "success"
# else
# echo "failure"
# fi