Skip to content

Commit

Permalink
Migrating XRT PR CI worklow to GHA (Xilinx#7839)
Browse files Browse the repository at this point in the history
  • Loading branch information
manikandan-xilinx authored Dec 8, 2023
1 parent ed6be96 commit 9893826
Show file tree
Hide file tree
Showing 2 changed files with 338 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## WIP - This directory contains all the Github Action Workflows
337 changes: 337 additions & 0 deletions .github/workflows/xrt_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,337 @@
name: XRT CI

env:
RELEASE: '2024.1'
PIPELINE: 'xrt'
ENV: 'prod'

on:
pull_request_target:
types: [opened, edited, synchronize]


jobs:
build:
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]
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@v4
with:
repository: "${{ github.event.inputs.repo }}"
ref: "${{ github.event.inputs.branch_ref }}"
fetch-depth: 0
github-server-url: "https://github.com"
token: ${{ secrets.CI_CLOUD_TOKEN}}
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

- 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 }}

windows-build:
runs-on: Windows
steps:
- 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

- name: XRT windows build
uses: ./composite-workflows/windows-build
with:
workspace: ${{ github.workspace }}/${{ github.run_number }}/build
buildNumber: ${{ github.run_number }}
release: ${{ env.RELEASE }}
token: ${{ secrets.CI_CLOUD_TOKEN }}
accessToken: ${{ secrets.ACCESS_TOKEN }}
workspaceg: ${{ github.workspace }}
github-server-url: ${{ secrets.SERVER_URL }}

apu-package-build:
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.inputs.repo }}"
ref: "${{ github.event.inputs.branch_ref }}"
fetch-depth: 0
github-server-url: "https://github.com"
token: ${{ secrets.CI_CLOUD_TOKEN}}
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

- 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 }}

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

- 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'
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"

- name: Checkout upload-logs-to-artifactory Action repository
uses: actions/checkout@v3
with:
repository: actions-int/upload-logs-to-artifactory-action
ref: 'v0.0.1'
token: ${{ secrets.ACCESS_TOKEN }}
github-server-url: ${{ secrets.SERVER_URL }}
path: ./.github/actions/upload-logs-to-artifactory-action

- name: Upload logs to Artifactory
id: upload
uses: ./.github/actions/upload-logs-to-artifactory-action
with:
logFile: ${{ steps.extract.outputs.logFile }}
buildNumber: ${{ github.run_number }}
apiKey: ${{ secrets.apiKey }}
pipeline: ${{ env.PIPELINE }}
repoKeyName: 'extractBoard'

- name: Display log file URL
run: |
# echo "Log file URL: ${{ steps.upload.outputs.logFileUrl }}" >> $GITHUB_STEP_SUMMARY
# echo '### [logs for extracted boards](${{ steps.upload.outputs.logFileUrl }})' >> $GITHUB_STEP_SUMMARY
echo "logs for extracted boards: ${{ steps.upload.outputs.logFileUrl }}"
outputs:
board_list: ${{ steps.extract.outputs.board_list }}
logFileUrl: ${{ steps.upload.outputs.logFileUrl }}

pcie-hw-tests:
needs: extract-platforms
runs-on: [xrt, trx]
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

- name: Use composite action for pcie-hw
uses: ./composite-workflows/pcie-hw
with:
organization: ${{ github.repository }}
runNumber: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}
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:
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

- name: Use composite action for pcie-hw
uses: ./composite-workflows/emulation
with:
organization: ${{ github.repository }}
run_number: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardState: "gating"
boardMode: "sw_emu"
os: ${{ matrix.os_list }}
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:
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

- name: Use composite action for pcie-hw
uses: ./composite-workflows/emulation
with:
organization: ${{ github.repository }}
run_number: ${{ github.run_number }}
buildNumber: ${{ github.run_number }}
release: ${{ env.RELEASE }}
env: ${{ env.ENV }}
pipeline: ${{ env.PIPELINE }}
boardType: "pcie"
boardState: "gating"
boardMode: "hw_emu"
os: ${{ matrix.os_list }}
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 }}

test-summary:
runs-on: [self-hosted, Ubuntu-22.04]
needs: build
steps:
- name: Checkout test summary Action repository
uses: actions/checkout@v3
with:
repository: actions-int/XOAH-URL-action
ref: 'v0.0.5'
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 }}
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

0 comments on commit 9893826

Please sign in to comment.