2022-09-30 22:14:48 -04:00
|
|
|
name: Build
|
|
|
|
run-name: Build win32, win64, mac (Intel) 🚀
|
2022-09-30 18:45:42 -04:00
|
|
|
on:
|
2022-09-30 19:01:03 -04:00
|
|
|
push:
|
|
|
|
branches:
|
2022-09-30 22:25:32 -04:00
|
|
|
- develop
|
|
|
|
- stable
|
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- develop
|
|
|
|
- stable
|
2022-09-30 18:45:42 -04:00
|
|
|
|
|
|
|
jobs:
|
2022-09-30 19:25:07 -04:00
|
|
|
build-win64:
|
2022-09-30 18:45:42 -04:00
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
2022-09-30 21:17:50 -04:00
|
|
|
|
|
|
|
- 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:
|
2022-09-30 21:17:50 -04:00
|
|
|
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
|
|
|
|
2022-09-30 19:25:07 -04:00
|
|
|
- name: Install poetry dependencies
|
2022-09-30 21:17:50 -04:00
|
|
|
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
|
|
|
|
2022-09-30 19:25:07 -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
|
2022-09-30 19:43:06 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
- 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) {
|
2022-09-30 19:43:06 -04:00
|
|
|
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) {
|
2022-09-30 19:43:06 -04:00
|
|
|
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
|
2022-09-30 22:40:37 -04:00
|
|
|
|
2022-09-30 23:01:33 -04:00
|
|
|
- name: Compress
|
|
|
|
shell: pwsh
|
|
|
|
run: |
|
|
|
|
mv desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64
|
|
|
|
Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip
|
|
|
|
|
2022-09-30 19:43:06 -04:00
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: win64-build
|
2022-09-30 23:01:33 -04:00
|
|
|
path: desktop\build\exe.win-amd64-3.9=
|
2022-09-30 21:25:33 -04:00
|
|
|
|
2022-09-30 21:27:43 -04:00
|
|
|
build-win32:
|
2022-09-30 21:25:33 -04:00
|
|
|
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
|
2022-09-30 22:40:37 -04:00
|
|
|
|
2022-09-30 23:01:33 -04:00
|
|
|
- name: Compress
|
|
|
|
shell: pwsh
|
|
|
|
run: |
|
|
|
|
mv desktop\build\exe.win32-3.9\ ~\onionshare-win32
|
|
|
|
Compress-Archive -LiteralPath ~\onionshare-win32 -DestinationPath ~\onionshare-win32.zip
|
|
|
|
|
2022-09-30 21:25:33 -04:00
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: win32-build
|
2022-09-30 23:01:33 -04:00
|
|
|
path: ~\onionshare-win32.zip
|
2022-09-30 22:14:48 -04:00
|
|
|
|
|
|
|
build-mac:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Install poetry
|
|
|
|
run: python3 -m pip install poetry
|
|
|
|
|
|
|
|
- name: Restore cache - poetry
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
|
|
|
path: ~/Library/Caches/pypoetry/virtualenvs
|
|
|
|
key: ${{ runner.os }}-macos-poetry-${{ hashFiles('desktop/poetry.lock') }}
|
|
|
|
|
|
|
|
- name: Install poetry dependencies
|
|
|
|
run: cd desktop && poetry install
|
|
|
|
|
|
|
|
- name: Restore cache - tor
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2022-09-30 22:25:32 -04:00
|
|
|
path: desktop/build/tor
|
2022-09-30 22:14:48 -04:00
|
|
|
key: ${{ runner.os }}-macos-tor-${{ hashFiles('desktop/scripts/get-tor.py') }}
|
|
|
|
|
|
|
|
- name: Get tor binaries from Tor Browser
|
2022-09-30 22:25:32 -04:00
|
|
|
run: cd desktop && poetry run python ./scripts/get-tor.py macos
|
2022-09-30 22:14:48 -04:00
|
|
|
|
|
|
|
- name: Restore cache - obfs4proxy
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2022-09-30 22:25:32 -04:00
|
|
|
path: desktop/onionshare/resources/tor/obfs4proxy
|
2022-09-30 22:14:48 -04:00
|
|
|
key: ${{ runner.os }}-macos-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.sh') }}
|
|
|
|
|
|
|
|
- name: Build obfs4proxy
|
|
|
|
run: |
|
|
|
|
if [[ -f "desktop/onionshare/resources/tor/obfs4proxy" ]]; then
|
|
|
|
echo "obfs4proxy already built"
|
|
|
|
else
|
|
|
|
cd desktop
|
|
|
|
./scripts/build-pt-obfs4proxy.sh
|
|
|
|
fi
|
|
|
|
|
|
|
|
- name: Restore cache - snowflake
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
|
|
|
path: desktop/onionshare/resources/tor/snowflake-client
|
|
|
|
key: ${{ runner.os }}-macos-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.sh') }}
|
|
|
|
|
|
|
|
- name: Build snowflake
|
|
|
|
run: |
|
|
|
|
if [[ -f "desktop/onionshare/resources/tor/snowflake-client" ]]; then
|
|
|
|
echo "snowflake already built"
|
|
|
|
else
|
|
|
|
cd desktop
|
|
|
|
./scripts/build-pt-snowflake.sh
|
|
|
|
fi
|
|
|
|
|
|
|
|
- name: Restore cache - meek
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2022-09-30 22:25:32 -04:00
|
|
|
path: desktop/onionshare/resources/tor/meek-client
|
2022-09-30 22:14:48 -04:00
|
|
|
key: ${{ runner.os }}-macos-meek-${{ hashFiles('desktop/scripts/build-pt-meek.sh') }}
|
|
|
|
|
|
|
|
- name: Build meek
|
|
|
|
run: |
|
|
|
|
if [[ -f "desktop/onionshare/resources/tor/meek-client" ]]; then
|
|
|
|
echo "meek already built"
|
|
|
|
else
|
|
|
|
cd desktop
|
|
|
|
./scripts/build-pt-meek.sh
|
|
|
|
fi
|
|
|
|
|
|
|
|
- name: Build OnionShare
|
|
|
|
run: |
|
2022-09-30 23:04:42 -04:00
|
|
|
sed -i '' "s|\.\./cli|$(pwd)/cli|g" desktop/pyproject.toml
|
2022-09-30 22:14:48 -04:00
|
|
|
cd desktop
|
2022-09-30 22:56:53 -04:00
|
|
|
poetry install
|
2022-09-30 22:14:48 -04:00
|
|
|
poetry run python ./setup-freeze.py build
|
|
|
|
poetry run python ./setup-freeze.py bdist_mac
|
|
|
|
poetry run python ./scripts/build-macos.py cleanup-build
|
2022-09-30 22:40:37 -04:00
|
|
|
|
2022-09-30 23:01:33 -04:00
|
|
|
- name: Compress
|
|
|
|
run: |
|
|
|
|
cd ~/project/desktop/build
|
|
|
|
tar -czvf ~/onionshare-macos.tar.gz OnionShare.app
|
|
|
|
|
2022-09-30 22:14:48 -04:00
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: mac-build
|
2022-09-30 23:01:33 -04:00
|
|
|
path: ~/onionshare-macos.tar.gz
|