Skip to content

Commit 28b1977

Browse files
committed
Add msaccess-vcs-build to action.yml
1 parent 76acf31 commit 28b1977

File tree

3 files changed

+85
-10
lines changed

3 files changed

+85
-10
lines changed

.github/workflows/tests_access.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,27 @@ jobs:
2626
source-dir: "./tests_access"
2727
test-framework: "none"
2828
timeout-minutes: 20
29-
- name: "Build Access Database (using msaccess-vcs-build action)"
30-
id: build_access_file
31-
uses: AccessCodeLib/msaccess-vcs-build@main
32-
with:
33-
source-dir: "./tests_access/AccessDatabase.accdb"
34-
target-dir: "./tests_access/out"
35-
compile: "false"
36-
vcs-url: "https://api.github.com/repos/josef-poetzl/msaccess-vcs-addin/releases/tags/v4.1.2-build"
29+
- name: "Display Build Results"
30+
run: |
31+
echo "Build completed with the following results:"
32+
echo "Processed folders: ${{ steps.build_vba.outputs.processed-folders }}"
33+
echo "Successful builds: ${{ steps.build_vba.outputs.successful-builds }}"
34+
echo "Office apps used: ${{ steps.build_vba.outputs.office-apps }}"
35+
echo "Access folders found: ${{ steps.build_vba.outputs.access-folders }}"
36+
echo "Has Access database: ${{ steps.build_vba.outputs.has-access-database }}"
37+
38+
# You can also use these values in conditional logic
39+
if [ "${{ steps.build_vba.outputs.successful-builds }}" -gt "0" ]; then
40+
echo "✅ At least one build was successful!"
41+
else
42+
echo "❌ No builds were successful!"
43+
fi
44+
45+
if [ "${{ steps.build_vba.outputs.has-access-database }}" == "True" ]; then
46+
echo "✅ Access database(s) detected and will be processed!"
47+
else
48+
echo "ℹ️ No Access databases found in source directory."
49+
fi
3750
- name: "Upload Build Artifact"
3851
uses: actions/upload-artifact@v4
3952
id: "upload"

Main.ps1

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ if ($folders.Count -eq 0) {
2020
}
2121

2222
$officeApps = @()
23+
$processedFolders = 0
24+
$successfulBuilds = 0
25+
$accessFolders = @()
26+
$hasAccessDatabase = $false
2327

2428
function Get-OfficeApp {
2529
param (
@@ -104,6 +108,7 @@ Write-Host "========================="
104108
foreach ($folder in $folders) {
105109

106110
Write-Host "▶️ Processing folder: $folder"
111+
$processedFolders++
107112

108113
$fileExtension = $folder.Substring($folder.LastIndexOf('.') + 1)
109114

@@ -123,7 +128,10 @@ foreach ($folder in $folders) {
123128
Write-Host "Office application: $app"
124129

125130
if ($app -eq "Access") {
126-
Write-Host "Access is not supported at the moment. Skipping..."
131+
Write-Host "Access database detected. Adding to Access folders list..."
132+
$accessFolders += "${SourceDir}/${folder}"
133+
$hasAccessDatabase = $true
134+
Write-Host "Access is not supported in the main build process. Skipping build but tracking for separate processing..."
127135
continue
128136
}
129137

@@ -139,6 +147,8 @@ foreach ($folder in $folders) {
139147
if ($LASTEXITCODE -ne 0) {
140148
Write-Host "Build-VBA.ps1 failed with exit code $LASTEXITCODE"
141149
exit $LASTEXITCODE
150+
} else {
151+
$successfulBuilds++
142152
}
143153

144154
if ($TestFramework -ieq "rubberduck" -and $fileExtension -ne "ppam") {
@@ -159,4 +169,19 @@ foreach ($folder in $folders) {
159169
CleanUp-OfficeApp -officeApp $officeApp
160170

161171
Write-Host "========================="
162-
}
172+
}
173+
174+
# Output variables for GitHub Actions
175+
Write-Host "Setting GitHub Actions outputs..."
176+
Write-Host "processed-folders=$processedFolders" >> $env:GITHUB_OUTPUT
177+
Write-Host "successful-builds=$successfulBuilds" >> $env:GITHUB_OUTPUT
178+
Write-Host "office-apps=$($officeApps -join ',')" >> $env:GITHUB_OUTPUT
179+
Write-Host "access-folders=$($accessFolders -join ',')" >> $env:GITHUB_OUTPUT
180+
Write-Host "has-access-database=$hasAccessDatabase" >> $env:GITHUB_OUTPUT
181+
182+
Write-Host "Build process completed successfully!"
183+
Write-Host "Processed folders: $processedFolders"
184+
Write-Host "Successful builds: $successfulBuilds"
185+
Write-Host "Office apps used: $($officeApps -join ', ')"
186+
Write-Host "Access folders found: $($accessFolders -join ', ')"
187+
Write-Host "Has Access database: $hasAccessDatabase"

action.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,50 @@ runs:
4545
}
4646
shell: pwsh
4747
- name: "Run VBA Build"
48+
id: "run_vba_build"
4849
shell: pwsh
4950
run: |
5051
${{ github.action_path }}\Main.ps1 `
5152
-SourceDir "${{ inputs['source-dir'] }}" `
5253
-TestFramework "${{ inputs['test-framework'] }}" `
5354
-OfficeAppDetection "${{ inputs['office-app'] }}"
55+
- name: "Extract first Access folder"
56+
if: steps.run_vba_build.outputs.has-access-database == 'True'
57+
id: "extract_access_folder"
58+
shell: pwsh
59+
run: |
60+
$accessFolders = "${{ steps.run_vba_build.outputs.access-folders }}"
61+
$firstAccessFolder = ($accessFolders -split ',')[0].Trim()
62+
Write-Host "First Access folder: $firstAccessFolder"
63+
Write-Host "first-access-folder=$firstAccessFolder" >> $env:GITHUB_OUTPUT
64+
- name: "Build Access Database (if detected)"
65+
if: steps.run_vba_build.outputs.has-access-database == 'True'
66+
id: "build_access"
67+
uses: AccessCodeLib/msaccess-vcs-build@main
68+
with:
69+
source-dir: "${{ steps.extract_access_folder.outputs.first-access-folder }}"
70+
target-dir: "${{ inputs['source-dir'] }}/out"
71+
compile: "false"
72+
vcs-url: "https://api.github.com/repos/josef-poetzl/msaccess-vcs-addin/releases/tags/v4.1.2-build"
5473
outputs:
5574
result:
5675
description: "The result of the VBA build process."
5776
value: "success"
77+
processed-folders:
78+
description: "Number of folders processed during the build"
79+
value: ${{ steps.run_vba_build.outputs.processed-folders }}
80+
successful-builds:
81+
description: "Number of successful builds completed"
82+
value: ${{ steps.run_vba_build.outputs.successful-builds }}
83+
office-apps:
84+
description: "Comma-separated list of Office applications used"
85+
value: ${{ steps.run_vba_build.outputs.office-apps }}
86+
access-folders:
87+
description: "Comma-separated list of Access database source folders"
88+
value: ${{ steps.run_vba_build.outputs.access-folders }}
89+
has-access-database:
90+
description: "Boolean indicating if any Access database folders were found"
91+
value: ${{ steps.run_vba_build.outputs.has-access-database }}
92+
first-access-folder:
93+
description: "The first Access database folder that was processed (if any)"
94+
value: ${{ steps.extract_access_folder.outputs.first-access-folder }}

0 commit comments

Comments
 (0)