XRT CI XTI #157
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: XRT CI XTI | |
env: | |
RELEASE: '2024.1' | |
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-working | |
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 -hip" | |
vs-version: "2022" | |
# apu-package-build: | |
# # needs: authorize | |
# runs-on: apu | |
# # runs-on: Ubuntu-20.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@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 | |
# token: ${{ secrets.ACCESS_TOKEN }} | |
# github-server-url: ${{ secrets.SERVER_URL }} | |
# path: composite-workflows | |
# ref: main | |
# - 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: main | |
- 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" | |
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 |