Skip to content

snphost PR CI test workflow (test #2) #73

snphost PR CI test workflow (test #2)

snphost PR CI test workflow (test #2) #73

name: snphost CI PR test
on:
pull_request_target:
types:
- reopened
- opened
- edited
- synchronize
workflow_dispatch:
inputs:
pull_request_number:
description: 'Specify the pull request number'
pull_request_branch:
description: 'Specify pull request source branch'
jobs:
host_firmware_tests:
runs-on: self-hosted
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Show the active SNP host kernel version on the host
run: uname -r
- name: Check if SNP is enabled on the host
run: |
set -e
source ./.github/workflows/snp_function_declarations.sh
verify_snp_host
- name: Set the PR number and PR branch environment based on GH Action event type
run: |
event_pr_number=''
event_pr_branch=''
if [ ${{ github.event_name }} == "pull_request_target" ]; then
event_pr_number=${{ github.event.pull_request.number }}
event_pr_branch=${{ github.event.pull_request.head.ref }}
elif [ ${{ github.event_name }} == "workflow_dispatch" ]; then
event_pr_number=${{ github.event.inputs.pull_request_number }}
event_pr_branch=${{ github.event.inputs.pull_request_branch }}
fi
echo "pr_number=${event_pr_number}" >> $GITHUB_ENV
echo "pr_branch=${event_pr_branch}" >> $GITHUB_ENV
- name: Show the GH environment variable current values
run: |
echo "GH Action PR number = ${{ env.pr_number }}"
echo "GH Action PR branch = ${{ env.pr_branch }}"
- name: Run snphost cargo test on the host
run: |
set -e
# Check and install dependencies on the host
source ./.github/workflows/snp_function_declarations.sh
check_rust_on_host
cd ${HOME}/
git clone https://github.com/LakshmiSaiHarika/snphost.git
cd ./snphost
# Checkout the PR branch
if [[ ${{ github.event_name }} == "pull_request_target" || ${{ github.event_name }} == "workflow_dispatch" ]]; then
git fetch origin pull/${{ env.pr_number }}/head:${{ env.pr_branch }}
git switch ${{ env.pr_branch }}
fi
# Perform cargo test on the host
cargo test
- name: snphost post cleanup tasks
if: always()
run: rm -rf ${HOME}/snphost
# Update this workflow title dynamically with PR details
run-name: |
${{ (startsWith(github.event_name, 'workflow_dispatch') && format('snphost PR CI test for PR #{0}/PR source branch({1})', github.event.inputs.pull_request_number, github.event.inputs.pull_request_branch)) ||
(startsWith(github.event_name, 'pull_request') && format('{0}', github.event.pull_request.title )) }}