1+ # Merged LabVIEW CI workflow
2+ # Combines Build_VIPM_Library.yml and Check_Broken_VIs.yml into one pipeline:
3+ # Check_Broken_VIs -> Build_VIPM_Library
4+ # All steps run sequentially on the SAME (self-hosted) machine with a SINGLE checkout.
5+
6+ name : LabVIEW CI
7+
8+ on :
9+ pull_request :
10+ branches :
11+ - main
12+ types : [closed]
13+
14+ push :
15+ paths-ignore :
16+ - ' **.md'
17+
18+ workflow_dispatch :
19+
20+ jobs :
21+ labview_ci :
22+ runs-on : [self-hosted, lv2017]
23+
24+ steps :
25+ # Get env variables
26+ # https://github.com/marketplace/actions/github-environment-variables-action
27+ - uses : FranzDiebold/github-env-vars-action@v2
28+
29+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
30+ - uses : actions/checkout@v3
31+
32+ # --- Step 1: Check for broken VIs ---
33+ - id : Check_Broken_VIs
34+ uses : LV-APT/lvCICD@main
35+ with :
36+ LabVIEW_Version : 2017
37+ Operation : VIAn_CheckBrokenVIs
38+ Parameter1 : ${{ github.workspace }}
39+ Parameter2 : NOPASSWORD
40+ Parameter3 : YES
41+ Parameter4 : -placeContent
42+
43+ # --- Step 2: Build the VIPM library ---
44+ - name : BuildDailyVIP
45+ id : build-vip
46+ uses : LV-APT/lvCICD@main
47+ with :
48+ LabVIEW_Version : 2017
49+ Operation : vipm_BuildDailyVIP
50+ Parameter1 : ${{ github.workspace }}
51+ Parameter2 : NO
52+
53+ - id : vip-name
54+ run :
55+ $vipName=Split-Path -Path ${{ steps.build-vip.outputs.Result }} -Leaf;
56+ Write-Host "::set-output name=vipName::"$vipName""
57+ shell : powershell
58+
59+ - name : Upload a Build Artifact
60+ uses : actions/upload-artifact@v4.3.2
61+ with :
62+ # Artifact name
63+ name : ${{ steps.vip-name.outputs.vipName }}
64+ path : ${{ steps.build-vip.outputs.Result }}
65+ # The desired behavior if no files are found using the provided path.
66+ if-no-files-found : warn
67+ retention-days : 90
68+
69+ # Backup generated files by ftp
70+ # https://github.com/marketplace/actions/simple-ftp-upload
71+ - name : backup Build Artifact by ftp
72+ uses : dennisameling/ftp-upload-action@v1.0.9
73+ with :
74+ server : ${{ secrets.VIPM_FTP_IP }}
75+ port : ${{ secrets.VIPM_FTP_PORT }}
76+ username : ${{ secrets.VIPM_FTP_USER }}
77+ password : ${{ secrets.VIPM_FTP_PASSWORD }}
78+ secure : false
79+ server_dir : /${{ env.CI_REPOSITORY_OWNER_SLUG }}/${{ env.CI_REPOSITORY_NAME }}/${{ env.CI_ACTION_REF_NAME }}/
80+ local_dir : ./vip/
0 commit comments