-
Notifications
You must be signed in to change notification settings - Fork 0
104 lines (89 loc) · 4.15 KB
/
build-windows.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
name: 'Build Windows'
on:
workflow_call:
inputs:
python_version:
description: 'Python version to use'
required: false
default: '3.10'
type: string
chromium_version:
description: 'Ungoogled Chromium version'
required: false
default: '129.0.6668.58-1.1'
type: string
chromedriver_version:
description: 'ChromeDriver version'
required: false
default: '131.0.6724.0'
type: string
env:
CHROMIUM_BASE_URL: 'https://github.com/ungoogled-software/ungoogled-chromium-windows/releases/download'
CHROMEDRIVER_BASE_URL: 'https://storage.googleapis.com/chrome-for-testing-public'
OUTPUT_DIR: 'ungoogled_chromium'
jobs:
build-windows:
name: Bundle Executable
runs-on: windows-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python_version }}
- name: Install Pipenv
run: pip install --user pipenv
- name: Install Python Dependencies
run: |
pipenv install --dev
- name: Cache Ungoogled Chromium
id: cache-chromium
uses: actions/cache@v4
with:
path: ${{ env.OUTPUT_DIR }}
key: ${{ runner.os }}-chromium-${{ inputs.chromium_version }}
- name: Download Ungoogled Chromium
if: steps.cache-chromium.outputs.cache-hit != 'true'
run: |
$CHROMIUM_FOLDER_NAME = "ungoogled-chromium_${{ inputs.chromium_version }}_windows"
Invoke-WebRequest -Uri "${{ env.CHROMIUM_BASE_URL }}/${{ inputs.chromium_version }}/${CHROMIUM_FOLDER_NAME}.zip" -OutFile ${CHROMIUM_FOLDER_NAME}.zip
New-Item -Path ${{ env.OUTPUT_DIR }} -ItemType Directory -Force
Expand-Archive -Path ${CHROMIUM_FOLDER_NAME}.zip -DestinationPath ${{ env.OUTPUT_DIR }}
- name: Cache ChromeDriver
id: cache-chromedriver
uses: actions/cache@v4
with:
path: ${{ env.OUTPUT_DIR }}\chromedriver
key: ${{ runner.os }}-chromedriver-${{ inputs.chromedriver_version }}
- name: Download ChromeDriver
if: steps.cache-chromedriver.outputs.cache-hit != 'true'
run: |
Invoke-WebRequest -Uri "${{ env.CHROMEDRIVER_BASE_URL }}/${{ inputs.chromedriver_version }}/win64/chromedriver-win64.zip" -OutFile ${{ env.CHROMEDRIVER_ARCHIVE_NAME }}
New-Item -Path ${{ env.OUTPUT_DIR }}\chromedriver -ItemType Directory -Force
Expand-Archive -Path ${{ env.CHROMEDRIVER_ARCHIVE_NAME }} -DestinationPath ${{ env.OUTPUT_DIR }}\chromedriver
- name: Debug - Check Chromium and ChromeDriver
run: |
Write-Host "Checking Chromium executable:"
if (Test-Path "D:\a\scrapegoat\scrapegoat\ungoogled_chromium\ungoogled-chromium_${{ inputs.chromium_version }}_windows\chrome.exe") {
$chromeVersion = (Get-Item "D:\a\scrapegoat\scrapegoat\ungoogled_chromium\ungoogled-chromium_${{ inputs.chromium_version }}_windows\chrome.exe").VersionInfo.FileVersion
Write-Host "Chromium version: $chromeVersion"
} else {
Write-Host "Chromium executable not found"
}
Write-Host "Checking ChromeDriver executable:"
if (Test-Path "D:\a\scrapegoat\scrapegoat\ungoogled_chromium\chromedriver\chromedriver-win64\chromedriver.exe") {
$chromeDriverVersion = & "D:\a\scrapegoat\scrapegoat\ungoogled_chromium\chromedriver\chromedriver-win64\chromedriver.exe" --version
Write-Host "ChromeDriver version: $chromeDriverVersion"
} else {
Write-Host "ChromeDriver executable not found"
}
Write-Host "Listing contents of Chromium directory:"
Get-ChildItem -Path "D:\a\scrapegoat\scrapegoat\ungoogled_chromium" -Recurse | Select-Object FullName, Length
- name: Package the app using PyInstaller
run: pipenv run pyinstaller main.spec
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: Windows Executable
path: "D:\\a\\scrapegoat\\scrapegoat\\dist\\scrapegoat_windows_x64.exe"