Browse Source

github build: split qt, snicker, obwatch builds

add_frost
zebra-lucky 2 weeks ago
parent
commit
c918725f39
  1. 27
      .github/workflows/build.yml
  2. 75
      contrib/build-linux/pyinstaller-build/build.sh
  3. 84
      contrib/build-linux/pyinstaller-build/joinmarket-clientserver-obwatch.spec
  4. 77
      contrib/build-linux/pyinstaller-build/joinmarket-clientserver-qt.spec
  5. 82
      contrib/build-linux/pyinstaller-build/joinmarket-clientserver-snicker.spec
  6. 1
      contrib/build-linux/pyinstaller-build/joinmarket-clientserver.spec

27
.github/workflows/build.yml

@ -67,3 +67,30 @@ jobs:
asset_path: dist/joinmarket-clientserver-${{ github.ref_name}}.tgz
asset_name: joinmarket-clientserver-${{ github.ref_name}}.tgz
asset_content_type: application/octet-stream
- name: Upload Qt Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: dist/joinmarket-clientserver-qt-${{ github.ref_name}}.tgz
asset_name: joinmarket-clientserver-qt-${{ github.ref_name}}.tgz
asset_content_type: application/octet-stream
- name: Upload Snicker Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: dist/joinmarket-clientserver-snicker-${{ github.ref_name}}.tgz
asset_name: joinmarket-clientserver-snicker-${{ github.ref_name}}.tgz
asset_content_type: application/octet-stream
- name: Upload ObWatch Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: dist/joinmarket-clientserver-obwatch-${{ github.ref_name}}.tgz
asset_name: joinmarket-clientserver-obwatch-${{ github.ref_name}}.tgz
asset_content_type: application/octet-stream

75
contrib/build-linux/pyinstaller-build/build.sh

@ -2,7 +2,9 @@
set -e
PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.."
export JM_VERSION="${JM_VERSION:-0.1-testbuild}"
PROJECT_ROOT=$(realpath "$(dirname "$(readlink -e "$0")")/../../..")
VENVPATH=$PROJECT_ROOT/jmvenv
JM_ROOT=$PROJECT_ROOT
@ -56,11 +58,78 @@ ls -l dist/joinmarket-clientserver/
cd dist
export JM_VERSION="${JM_VERSION}"
mv joinmarket-clientserver joinmarket-clientserver-${JM_VERSION}
tar -czvf joinmarket-clientserver-${JM_VERSION}.tgz \
joinmarket-clientserver-${JM_VERSION}
ls -l
cd ..
rm joinmarket-clientserver.spec
rm -rf build
cp contrib/build-linux/pyinstaller-build/joinmarket-clientserver-qt.spec .
pyinstaller -y joinmarket-clientserver-qt.spec
ls -l dist/joinmarket-clientserver/
cd dist
mv joinmarket-clientserver joinmarket-clientserver-qt-${JM_VERSION}
tar -czvf joinmarket-clientserver-qt-${JM_VERSION}.tgz \
joinmarket-clientserver-qt-${JM_VERSION}
ls -l
cd ..
rm joinmarket-clientserver-qt.spec
rm -rf build
cp contrib/build-linux/pyinstaller-build/joinmarket-clientserver-snicker.spec .
pyinstaller -y joinmarket-clientserver-snicker.spec
ls -l dist/joinmarket-clientserver/
cd dist
mv joinmarket-clientserver joinmarket-clientserver-snicker-${JM_VERSION}
tar -czvf joinmarket-clientserver-snicker-${JM_VERSION}.tgz \
joinmarket-clientserver-snicker-${JM_VERSION}
ls -l
cd ..
rm joinmarket-clientserver-snicker.spec
rm -rf build
cp contrib/build-linux/pyinstaller-build/joinmarket-clientserver-obwatch.spec .
pyinstaller -y joinmarket-clientserver-obwatch.spec
ls -l dist/joinmarket-clientserver/
cd dist
mv joinmarket-clientserver joinmarket-clientserver-obwatch-${JM_VERSION}
tar -czvf joinmarket-clientserver-obwatch-${JM_VERSION}.tgz \
joinmarket-clientserver-obwatch-${JM_VERSION}
ls -l
cd ..
rm joinmarket-clientserver-obwatch.spec
rm -rf build

84
contrib/build-linux/pyinstaller-build/joinmarket-clientserver-obwatch.spec

@ -0,0 +1,84 @@
# -*- mode: python; coding: utf-8 -*-
import itertools
import os
from pathlib import Path
PROJECT_ROOT = os.path.abspath('.')
binaries = []
binaries += [(f'{PROJECT_ROOT}/jmvenv/lib/lib*', '.')]
datas = []
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/dropin.cache','twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/__init__.py', 'twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/txtorcon_endpoint_parser.py', 'twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/scripts/obwatch/orderbook.html', '.')]
datas += [(f'{PROJECT_ROOT}/scripts/obwatch/vendor/bootstrap.min.css',
'vendor')]
datas += [(f'{PROJECT_ROOT}/scripts/obwatch/vendor/jquery-3.5.1.slim.min.js',
'vendor')]
datas += [(f'{PROJECT_ROOT}/scripts/obwatch/vendor/sorttable.js',
'vendor')]
scripts = [
'scripts/obwatch/ob-watcher.py',
]
hiddenimports = [
'chromalog.mark.helpers',
'chromalog.mark.helpers.simple',
'twisted.plugins',
'twisted.plugins.txtorcon_endpoint_parser',
]
a = {}
pyz = {}
exe = {}
for s in scripts:
a[s] = Analysis(
[s],
pathex=[],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz[s] = PYZ(a[s].pure)
exe[s] = EXE(
pyz[s], a[s].scripts, [],
name=Path(s).stem,
exclude_binaries=True, debug=False, bootloader_ignore_signals=False,
strip=False, upx=True, console=True, disable_windowed_traceback=False,
argv_emulation=False, target_arch=None, codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
*list(exe.values()),
list(set(itertools.chain.from_iterable(b.binaries for b in a.values()))),
list(set(itertools.chain.from_iterable(d.datas for d in a.values()))),
strip=False,
upx=True,
upx_exclude=[],
name='joinmarket-clientserver',
)

77
contrib/build-linux/pyinstaller-build/joinmarket-clientserver-qt.spec

@ -0,0 +1,77 @@
# -*- mode: python; coding: utf-8 -*-
import itertools
import os
from pathlib import Path
PROJECT_ROOT = os.path.abspath('.')
binaries = []
binaries += [(f'{PROJECT_ROOT}/jmvenv/lib/lib*', '.')]
datas = []
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/dropin.cache','twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/__init__.py', 'twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/txtorcon_endpoint_parser.py', 'twisted/plugins')]
scripts = [
'scripts/joinmarket-qt.py',
]
hiddenimports = [
'chromalog.mark.helpers',
'chromalog.mark.helpers.simple',
'twisted.plugins',
'twisted.plugins.txtorcon_endpoint_parser',
]
a = {}
pyz = {}
exe = {}
for s in scripts:
a[s] = Analysis(
[s],
pathex=[],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz[s] = PYZ(a[s].pure)
exe[s] = EXE(
pyz[s], a[s].scripts, [],
name=Path(s).stem,
exclude_binaries=True, debug=False, bootloader_ignore_signals=False,
strip=False, upx=True, console=True, disable_windowed_traceback=False,
argv_emulation=False, target_arch=None, codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
*list(exe.values()),
list(set(itertools.chain.from_iterable(b.binaries for b in a.values()))),
list(set(itertools.chain.from_iterable(d.datas for d in a.values()))),
strip=False,
upx=True,
upx_exclude=[],
name='joinmarket-clientserver',
)

82
contrib/build-linux/pyinstaller-build/joinmarket-clientserver-snicker.spec

@ -0,0 +1,82 @@
# -*- mode: python; coding: utf-8 -*-
import itertools
import os
from pathlib import Path
PROJECT_ROOT = os.path.abspath('.')
binaries = []
binaries += [(f'{PROJECT_ROOT}/jmvenv/lib/lib*', '.')]
datas = []
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/dropin.cache','twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/__init__.py', 'twisted/plugins')]
datas += [(f'{PROJECT_ROOT}/jmvenv/lib/python3.12/site-packages/'
f'twisted/plugins/txtorcon_endpoint_parser.py', 'twisted/plugins')]
scripts = [
'scripts/snicker/create-snicker-proposal.py',
'scripts/snicker/receive-snicker.py',
'scripts/snicker/snicker-finder.py',
'scripts/snicker/snicker-recovery.py',
'scripts/snicker/snicker-seed-tx.py',
'scripts/snicker/snicker-server.py',
]
hiddenimports = [
'chromalog.mark.helpers',
'chromalog.mark.helpers.simple',
'twisted.plugins',
'twisted.plugins.txtorcon_endpoint_parser',
]
a = {}
pyz = {}
exe = {}
for s in scripts:
a[s] = Analysis(
[s],
pathex=[],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz[s] = PYZ(a[s].pure)
exe[s] = EXE(
pyz[s], a[s].scripts, [],
name=Path(s).stem,
exclude_binaries=True, debug=False, bootloader_ignore_signals=False,
strip=False, upx=True, console=True, disable_windowed_traceback=False,
argv_emulation=False, target_arch=None, codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
*list(exe.values()),
list(set(itertools.chain.from_iterable(b.binaries for b in a.values()))),
list(set(itertools.chain.from_iterable(d.datas for d in a.values()))),
strip=False,
upx=True,
upx_exclude=[],
name='joinmarket-clientserver',
)

1
contrib/build-linux/pyinstaller-build/joinmarket-clientserver.spec

@ -28,7 +28,6 @@ scripts = [
'scripts/genwallet.py',
'scripts/jmwalletd.py',
'scripts/joinmarketd.py',
'scripts/joinmarket-qt.py',
'scripts/receive-payjoin.py',
'scripts/sendpayment.py',
'scripts/sendtomany.py',

Loading…
Cancel
Save