mirror of
https://github.com/monero-project/meta.git
synced 2024-12-22 19:49:23 +00:00
kovri static builds
This commit is contained in:
parent
b42fd1b2bd
commit
2da454ea68
1 changed files with 37 additions and 52 deletions
|
@ -95,7 +95,7 @@ from buildbot.plugins import schedulers
|
||||||
|
|
||||||
c['schedulers'].append(schedulers.ForceScheduler(
|
c['schedulers'].append(schedulers.ForceScheduler(
|
||||||
name='force',
|
name='force',
|
||||||
builderNames=['kovri-static-dragonflybsd-amd64', 'kovri-all-dragonflybsd-amd64', 'monero-snap','monero-core-android-armv7','monero-static-dragonflybsd-amd64','monero-static-netbsd-amd64','monero-static-openbsd-amd64','monero-android-armv7','kovri-static-win32','kovri-static-win64','kovri-static-freebsd64','kovri-static-osx','kovri-static-ubuntu-amd64','kovri-static-ubuntu-i686','kovri-static-ubuntu-arm7','kovri-static-debian-arm8','pigeons-testing','monero-tests-ubuntu-16.04-i686','monero-tests-windows-10-i686','monero-tests-freebsd-10.3-amd64','monero-tests-ubuntu-16.04-amd64','monero-tests-osx-10.11','monero-tests-osx-10.10','monero-tests-osx-10.12','monero-tests-ubuntu-16.04-armv7','monero-tests-debian-armv8','monero-tests-windows-10-amd64','monero-core-win32','monero-core-win64','monero-core-freebsd','monero-core-ubuntu-arm7','monero-core-debian-armv8','kovri-all-freebsd64','kovri-all-osx-10.12','kovri-all-osx-10.10','kovri-all-osx-10.11','kovri-all-ubuntu-arm7','kovri-all-ubuntu-i686','kovri-all-win32','kovri-all-win64','kovri-all-debian-arm8','kovri-all-ubuntu-amd64','monero-core-osx-10.12','monero-core-osx-10.11','monero-core-ubuntu-amd64','monero-core-ubuntu-i686','monero-static-osx-10.10','monero-static-osx-10.11','monero-static-win32','monero-static-win64','monero-static-ubuntu-amd64','monero-static-freebsd64','monero-static-ubuntu-arm7','monero-static-debian-armv8','monero-static-ubuntu-i686','monero-static-osx-10.12']))
|
builderNames=['kovri-static-openbsd-amd64', 'kovri-all-openbsd-amd64', 'kovri-static-dragonflybsd-amd64', 'kovri-all-dragonflybsd-amd64', 'monero-snap','monero-core-android-armv7','monero-static-dragonflybsd-amd64','monero-static-netbsd-amd64','monero-static-openbsd-amd64','monero-android-armv7','kovri-static-win32','kovri-static-win64','kovri-static-freebsd64','kovri-static-osx','kovri-static-ubuntu-amd64','kovri-static-ubuntu-i686','kovri-static-ubuntu-arm7','kovri-static-debian-arm8','pigeons-testing','monero-tests-ubuntu-16.04-i686','monero-tests-windows-10-i686','monero-tests-freebsd-10.3-amd64','monero-tests-ubuntu-16.04-amd64','monero-tests-osx-10.11','monero-tests-osx-10.10','monero-tests-osx-10.12','monero-tests-ubuntu-16.04-armv7','monero-tests-debian-armv8','monero-tests-windows-10-amd64','monero-core-win32','monero-core-win64','monero-core-freebsd','monero-core-ubuntu-arm7','monero-core-debian-armv8','kovri-all-freebsd64','kovri-all-osx-10.12','kovri-all-osx-10.10','kovri-all-osx-10.11','kovri-all-ubuntu-arm7','kovri-all-ubuntu-i686','kovri-all-win32','kovri-all-win64','kovri-all-debian-arm8','kovri-all-ubuntu-amd64','monero-core-osx-10.12','monero-core-osx-10.11','monero-core-ubuntu-amd64','monero-core-ubuntu-i686','monero-static-osx-10.10','monero-static-osx-10.11','monero-static-win32','monero-static-win64','monero-static-ubuntu-amd64','monero-static-freebsd64','monero-static-ubuntu-arm7','monero-static-debian-armv8','monero-static-ubuntu-i686','monero-static-osx-10.12']))
|
||||||
|
|
||||||
c['schedulers'].append(schedulers.SingleBranchScheduler(
|
c['schedulers'].append(schedulers.SingleBranchScheduler(
|
||||||
name='monero PR builder',
|
name='monero PR builder',
|
||||||
|
@ -134,15 +134,6 @@ c['schedulers'].append(schedulers.Nightly(
|
||||||
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/monero.git'),
|
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/monero.git'),
|
||||||
onlyIfChanged=True))
|
onlyIfChanged=True))
|
||||||
|
|
||||||
c['schedulers'].append(schedulers.Nightly(
|
|
||||||
name='Kovri Nightly',
|
|
||||||
branch='master',
|
|
||||||
builderNames=['kovri-static-dragonflybsd-amd64','kovri-static-win32','kovri-static-win64','kovri-static-freebsd64','kovri-static-osx','kovri-static-ubuntu-amd64','kovri-static-ubuntu-i686','kovri-static-ubuntu-arm7','kovri-static-debian-arm8'],
|
|
||||||
hour=6,
|
|
||||||
minute=0,
|
|
||||||
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/kovri.git'),
|
|
||||||
onlyIfChanged=False))
|
|
||||||
|
|
||||||
c['schedulers'].append(schedulers.Nightly(
|
c['schedulers'].append(schedulers.Nightly(
|
||||||
name='Monero Nightly',
|
name='Monero Nightly',
|
||||||
branch='master',
|
branch='master',
|
||||||
|
@ -320,42 +311,6 @@ kovriMingw64Factory.addStep(steps.Compile(command=["make", "all-options"],env={'
|
||||||
kovriMingw64Factory.addStep(steps.Compile(name="compile tests", command=["make", "tests"]))
|
kovriMingw64Factory.addStep(steps.Compile(name="compile tests", command=["make", "tests"]))
|
||||||
kovriMingw64Factory.addStep(steps.Test(command=["kovri-tests.exe"], workdir="build/build"))
|
kovriMingw64Factory.addStep(steps.Test(command=["kovri-tests.exe"], workdir="build/build"))
|
||||||
|
|
||||||
kovriStaticFactory = util.BuildFactory()
|
|
||||||
kovriStaticFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
|
||||||
kovriStaticFactory.addStep(steps.Compile(command=["make", "release-static"]))
|
|
||||||
kovriStaticFactory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
|
||||||
kovriStaticFactory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
|
||||||
kovriStaticFactory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
|
|
||||||
kovriStaticFreebsdFactory = util.BuildFactory()
|
|
||||||
kovriStaticFreebsdFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
|
||||||
kovriStaticFreebsdFactory.addStep(steps.Compile(command=["gmake", "release-static"], env={'CC': 'clang38', 'CXX': 'clang++38'}))
|
|
||||||
kovriStaticFreebsdFactory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
|
||||||
kovriStaticFreebsdFactory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
|
||||||
kovriStaticFreebsdFactory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
|
|
||||||
kovriStaticDragonflyFactory = util.BuildFactory()
|
|
||||||
kovriStaticDragonflyFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
|
||||||
kovriStaticDragonflyFactory.addStep(steps.Compile(command=["gmake", "release-static"]))
|
|
||||||
kovriStaticDragonflyFactory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
|
||||||
kovriStaticDragonflyFactory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
kovriStaticDragonflyFactory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
|
|
||||||
kovriStaticWin32Factory = util.BuildFactory()
|
|
||||||
kovriStaticWin32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
|
||||||
kovriStaticWin32Factory.addStep(steps.Compile(command=["make", "release-static"],env={'MSYSTEM': "MINGW32"}))
|
|
||||||
#kovriStaticWin32Factory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', env={'PATH': ["C:\msys32\usr\\bin\\core_perl", "${PATH}"]}, command = ['bash.exe', '-x', './pkg/kovri-install.sh', '-p', '-c']))
|
|
||||||
kovriStaticWin32Factory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', env={'PATH': ["C:\msys32\usr\\bin\\core_perl", "${PATH}"]}, command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
|
||||||
kovriStaticWin32Factory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
|
||||||
kovriStaticWin32Factory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
|
|
||||||
kovriStaticWin64Factory = util.BuildFactory()
|
|
||||||
kovriStaticWin64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
|
||||||
kovriStaticWin64Factory.addStep(steps.Compile(command=["make", "release-static"],env={'MSYSTEM': "MINGW64"}))
|
|
||||||
kovriStaticWin64Factory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', env={'PATH': ["C:\msys64\usr\\bin\\core_perl", "${PATH}"]}, command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
|
||||||
kovriStaticWin64Factory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
|
||||||
kovriStaticWin64Factory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
|
||||||
|
|
||||||
kovriDragonflyFactory = util.BuildFactory()
|
kovriDragonflyFactory = util.BuildFactory()
|
||||||
kovriDragonflyFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
kovriDragonflyFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
||||||
kovriDragonflyFactory.addStep(steps.Compile(command=["gmake", "all-options"]))
|
kovriDragonflyFactory.addStep(steps.Compile(command=["gmake", "all-options"]))
|
||||||
|
@ -363,9 +318,34 @@ kovriDragonflyFactory.addStep(steps.Compile(name="compile tests", command=["gmak
|
||||||
kovriDragonflyFactory.addStep(steps.Test(command=["./build/kovri-tests"]))
|
kovriDragonflyFactory.addStep(steps.Test(command=["./build/kovri-tests"]))
|
||||||
kovriDragonflyFactory.addStep(steps.Test(name="benchmark", command=["./build/kovri-benchmarks"]))
|
kovriDragonflyFactory.addStep(steps.Test(name="benchmark", command=["./build/kovri-benchmarks"]))
|
||||||
|
|
||||||
kovriStaticDragonflyFactory = util.BuildFactory()
|
kovriStaticFactory = util.BuildFactory()
|
||||||
kovriStaticDragonflyFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
kovriStaticFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
||||||
kovriStaticDragonflyFactory.addStep(steps.Compile(command=["gmake", "release-static"]))
|
kovriStaticFactory.addStep(steps.Compile(command=["make", "release-static"]))
|
||||||
|
kovriStaticFactory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='package', command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
||||||
|
kovriStaticFactory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
||||||
|
kovriStaticFactory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
||||||
|
|
||||||
|
kovriStaticBsdFactory = util.BuildFactory()
|
||||||
|
kovriStaticBsdFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
||||||
|
kovriStaticBsdFactory.addStep(steps.Compile(command=["gmake", "release-static"]))
|
||||||
|
kovriStaticBsdFactory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.tar.bz2')]))
|
||||||
|
kovriStaticBsdFactory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2")))
|
||||||
|
kovriStaticBsdFactory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.tar.bz2.sha256sum.txt")))
|
||||||
|
kovriStaticBsdFactory.addStep(steps.RemoveDirectory(dir='build/build', hideStepIf=True))
|
||||||
|
|
||||||
|
kovriStaticWin32Factory = util.BuildFactory()
|
||||||
|
kovriStaticWin32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
||||||
|
kovriStaticWin32Factory.addStep(steps.Compile(command=["make", "release-static"],env={'MSYSTEM': "MINGW32"}))
|
||||||
|
kovriStaticWin32Factory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', env={'PATH': ["C:\msys32\usr\\bin\\core_perl", "${PATH}"]}, command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.zip')]))
|
||||||
|
kovriStaticWin32Factory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.zip"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.zip"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.zip")))
|
||||||
|
kovriStaticWin32Factory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.zip.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.zip.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.zip.sha256sum.txt")))
|
||||||
|
|
||||||
|
kovriStaticWin64Factory = util.BuildFactory()
|
||||||
|
kovriStaticWin64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
|
||||||
|
kovriStaticWin64Factory.addStep(steps.Compile(command=["make", "release-static"],env={'MSYSTEM': "MINGW64"}))
|
||||||
|
kovriStaticWin64Factory.addStep(steps.ShellCommand(name='package', description='packaging', descriptionDone='packaged', env={'PATH': ["C:\msys64\usr\\bin\\core_perl", "${PATH}"]}, command = ['bash', '-x', './pkg/kovri-install.sh', '-p', '-c', '-f', util.Interpolate('kovri-latest-%(prop:platform)s.zip')]))
|
||||||
|
kovriStaticWin64Factory.addStep(steps.FileUpload(slavesrc=WithProperties("kovri-latest-%(platform)s.zip"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.zip"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.zip")))
|
||||||
|
kovriStaticWin64Factory.addStep(steps.FileUpload(name="upload hashes", slavesrc=WithProperties("kovri-latest-%(platform)s.zip.sha256sum.txt"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/kovri-latest-%(platform)s.zip.sha256sum.txt"), url=WithProperties("https://build.getmonero.org/downloads/kovri-latest-%(platform)s.zip.sha256sum.txt")))
|
||||||
|
|
||||||
coreUbuntu64Factory = util.BuildFactory()
|
coreUbuntu64Factory = util.BuildFactory()
|
||||||
coreUbuntu64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
|
coreUbuntu64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
|
||||||
|
@ -763,12 +743,17 @@ c['builders'].append(
|
||||||
c['builders'].append(
|
c['builders'].append(
|
||||||
util.BuilderConfig(name="kovri-static-dragonflybsd-amd64",
|
util.BuilderConfig(name="kovri-static-dragonflybsd-amd64",
|
||||||
slavenames=["dragonfly-4.6"],
|
slavenames=["dragonfly-4.6"],
|
||||||
factory=kovriStaticDragonflyFactory))
|
factory=kovriStaticBsdFactory))
|
||||||
|
|
||||||
c['builders'].append(
|
c['builders'].append(
|
||||||
util.BuilderConfig(name="kovri-static-freebsd64",
|
util.BuilderConfig(name="kovri-static-freebsd64",
|
||||||
slavenames=["freebsd64"],
|
slavenames=["freebsd64"], env={'CC': 'clang36', 'CXX': 'clang++36'},
|
||||||
factory=kovriStaticFreebsdFactory))
|
factory=kovriStaticBsdFactory))
|
||||||
|
|
||||||
|
c['builders'].append(
|
||||||
|
util.BuilderConfig(name="kovri-static-openbsd-amd64",
|
||||||
|
slavenames=["openbsd"], env={'CC': 'egcc', 'CXX': 'eg++'},
|
||||||
|
factory=kovriStaticBsdFactory))
|
||||||
|
|
||||||
c['builders'].append(
|
c['builders'].append(
|
||||||
util.BuilderConfig(name="kovri-static-win32",
|
util.BuilderConfig(name="kovri-static-win32",
|
||||||
|
|
Loading…
Reference in a new issue