onionshare/.github/workflows/build-windows.yml

206 lines
7.3 KiB
YAML
Raw Normal View History

2022-09-30 18:45:42 -04:00
name: Build Windows
2022-09-30 19:34:06 -04:00
run-name: Build win32 and win64 🚀
2022-09-30 18:45:42 -04:00
on:
push:
branches:
- github-actions
2022-09-30 18:45:42 -04:00
jobs:
build-win64:
2022-09-30 18:45:42 -04:00
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install poetry
run: C:\hostedtoolcache\windows\Python\3.9.13\x64\python -m pip install poetry
2022-09-30 19:34:06 -04:00
- name: Restore cache - poetry
uses: actions/cache@v3
2022-09-30 18:45:42 -04:00
with:
path: ~\AppData\Local\pypoetry\Cache\virtualenvs
2022-09-30 19:34:06 -04:00
key: ${{ runner.os }}-win64-poetry-${{ hashFiles('desktop/poetry.lock') }}
2022-09-30 18:45:42 -04:00
- name: Install poetry dependencies
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry install
C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry env list --full-path
2022-09-30 18:45:42 -04:00
2022-09-30 19:34:06 -04:00
- name: Restore cache - tor
uses: actions/cache@v3
2022-09-30 18:45:42 -04:00
with:
path: desktop\build\tor
2022-09-30 19:34:06 -04:00
key: ${{ runner.os }}-win64-tor-${{ hashFiles('desktop/scripts/get-tor.py') }}
2022-09-30 18:45:42 -04:00
- name: Get tor binaries from Tor Browser (64-bit)
2022-09-30 19:34:06 -04:00
run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\get-tor.py win64
- name: Restore cache - obfs4proxy
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\obfs4proxy.exe
key: ${{ runner.os }}-win64-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }}
- name: Build obfs4proxy
shell: pwsh
run: |
2022-09-30 19:47:20 -04:00
if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) {
2022-09-30 19:34:06 -04:00
Write-Output "obfs4proxy already built"
} else {
cd desktop
.\scripts\build-pt-obfs4proxy.ps1
}
- name: Restore cache - snowflake
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\snowflake-client.exe
key: ${{ runner.os }}-win64-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }}
- name: Build snowflake
shell: pwsh
run: |
2022-09-30 19:47:20 -04:00
if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) {
Write-Output "snowflake already built"
} else {
cd desktop
.\scripts\build-pt-snowflake.ps1
}
- name: Restore cache - meek
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\meek-client.exe
key: ${{ runner.os }}-win64-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }}
- name: Build meek
shell: pwsh
run: |
2022-09-30 19:47:20 -04:00
if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) {
Write-Output "meek already built"
} else {
cd desktop
.\scripts\build-pt-meek.ps1
}
- name: Build OnionShare
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\setup-freeze.py build
C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build
- name: Compress
shell: pwsh
run: |
mv desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64
Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip
- uses: actions/upload-artifact@v3
with:
name: win64-build
path: ~\onionshare-win64.zip
2022-09-30 21:25:33 -04:00
build-win32:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install poetry
run: C:\hostedtoolcache\windows\Python\3.9.13\x86\python -m pip install poetry
- name: Restore cache - poetry
uses: actions/cache@v3
with:
path: ~\AppData\Local\pypoetry\Cache\virtualenvs
key: ${{ runner.os }}-win32-poetry-${{ hashFiles('desktop/poetry.lock') }}
- name: Install poetry dependencies
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry install
C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry env list --full-path
- name: Restore cache - tor
uses: actions/cache@v3
with:
path: desktop\build\tor
key: ${{ runner.os }}-win32-tor-${{ hashFiles('desktop/scripts/get-tor.py') }}
- name: Get tor binaries from Tor Browser (32-bit)
run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\get-tor.py win32
- name: Install golang (32-bit)
shell: pwsh
run: |
cd ~\Downloads
Invoke-WebRequest -Uri https://go.dev/dl/go1.19.1.windows-386.msi -OutFile go1.19.1.windows-386.msi
msiexec.exe /i go1.19.1.windows-386.msi /quiet /L*V go-install.log
- name: Restore cache - obfs4proxy
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\obfs4proxy.exe
key: ${{ runner.os }}-win32-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }}
- name: Build obfs4proxy
shell: pwsh
run: |
if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) {
Write-Output "obfs4proxy already built"
} else {
$env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH"
cd desktop
.\scripts\build-pt-obfs4proxy.ps1
}
- name: Restore cache - snowflake
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\snowflake-client.exe
key: ${{ runner.os }}-win32-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }}
- name: Build snowflake
shell: pwsh
run: |
if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) {
Write-Output "snowflake already built"
} else {
$env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH"
cd desktop
.\scripts\build-pt-snowflake.ps1
}
- name: Restore cache - meek
uses: actions/cache@v3
with:
path: desktop\onionshare\resources\tor\meek-client.exe
key: ${{ runner.os }}-win32-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }}
- name: Build meek
shell: pwsh
run: |
if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) {
Write-Output "meek already built"
} else {
$env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH"
cd desktop
.\scripts\build-pt-meek.ps1
}
- name: Build OnionShare
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\setup-freeze.py build
C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\build-windows.py cleanup-build
- name: Compress
shell: pwsh
run: |
mv desktop\build\exe.win-win32-3.9\ ~\onionshare-win32
Compress-Archive -LiteralPath ~\onionshare-win32 -DestinationPath ~\onionshare-win32.zip
- uses: actions/upload-artifact@v3
with:
name: win32-build
path: ~\onionshare-win32.zip