From 9b3cea950a47568b43bb30f126a82e4ebf81c8ef Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 26 Jun 2020 13:25:25 +0200 Subject: [PATCH 1/4] Remove redundant VERSION file We want to avoid having this in multiple places. --- VERSION | 1 - 1 file changed, 1 deletion(-) delete mode 100644 VERSION diff --git a/VERSION b/VERSION deleted file mode 100644 index 9084fa2f..00000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.1.0 From fe2ad57077d01776d5ec02a78a4e219eaaa58920 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 26 Jun 2020 14:11:55 +0200 Subject: [PATCH 2/4] Move snap specific script to snap directory --- {utils => snap/local}/svc_wrapper.sh | 0 snap/snapcraft.yaml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename {utils => snap/local}/svc_wrapper.sh (100%) diff --git a/utils/svc_wrapper.sh b/snap/local/svc_wrapper.sh similarity index 100% rename from utils/svc_wrapper.sh rename to snap/local/svc_wrapper.sh diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index e21ef6e5..2549c057 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -29,6 +29,6 @@ apps: command: utils/launch.sh plugs: [network, network-bind] novncsvc: - command: utils/svc_wrapper.sh + command: snap/local/svc_wrapper.sh daemon: forking plugs: [network, network-bind] From 244c02c5ea13b8bb9ce336d3398b623f997a9d25 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 26 Jun 2020 14:12:37 +0200 Subject: [PATCH 3/4] Deploy new snap on release --- .github/workflows/deploy.yml | 24 +++++++++++++++++++++++- snap/local/svc_wrapper.sh | 2 +- snap/snapcraft.yaml | 12 +++++++----- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cd90ebab..75a566bd 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -5,7 +5,7 @@ on: types: [published] jobs: - build: + npm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -14,3 +14,25 @@ jobs: - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + snap: + runs-on: ubuntu-latest + container: snapcore/snapcraft + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + - run: npm install + - run: ./utils/use_require.js --clean --as commonjs --with-app + - run: | + cp utils/launch.sh build/launch.sh + cp snap/local/svc_wrapper.sh build/svc_wrapper.sh + - run: | + VERSION=$(grep '"version"' package.json | cut -d '"' -f 4) + echo $VERSION + sed -i "s/@VERSION@/$VERSION/g" snap/snapcraft.yaml + - run: snapcraft + - run: | + mkdir .snapcraft + echo ${SNAPCRAFT_LOGIN} | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg + env: + SNAPCRAFT_LOGIN: ${{secrets.SNAPCRAFT_LOGIN}} + - run: snapcraft push --release=stable *.snap diff --git a/snap/local/svc_wrapper.sh b/snap/local/svc_wrapper.sh index 51d74645..7b0be232 100755 --- a/snap/local/svc_wrapper.sh +++ b/snap/local/svc_wrapper.sh @@ -24,6 +24,6 @@ snapctl get services | jq -c '.[]' | while read service; do # for each service t echo "novnc: not starting service ${service} with listen_port ${listen_port} and vnc_host_port ${vnc_host_port}" else # start (and fork with '&') the service using the specified listen port and VNC host:port - $SNAP/utils/launch.sh --listen $listen_port --vnc $vnc_host_port & + $SNAP/launch.sh --listen $listen_port --vnc $vnc_host_port & fi done diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 2549c057..d1bb9dc8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,17 +1,19 @@ name: novnc base: core18 # the base snap is the execution environment for this snap -version: '1.1.0' +version: '@VERSION@' summary: Open Source VNC client using HTML5 (WebSockets, Canvas) description: | Open Source VNC client using HTML5 (WebSockets, Canvas). - noVNC is both a VNC client JavaScript library as well as an application built on top of that library. noVNC runs well in any modern browser including mobile browsers (iOS and Android). + noVNC is both a VNC client JavaScript library as well as an + application built on top of that library. noVNC runs well in any + modern browser including mobile browsers (iOS and Android). grade: stable confinement: strict parts: novnc: - source: https://github.com/novnc/noVNC.git #https://github.com/novnc/noVNC/archive/v$SNAPCRAFT_PROJECT_VERSION.tar.gz + source: build/ plugin: dump stage-packages: - websockify @@ -26,9 +28,9 @@ hooks: apps: novnc: - command: utils/launch.sh + command: ./launch.sh plugs: [network, network-bind] novncsvc: - command: snap/local/svc_wrapper.sh + command: ./svc_wrapper.sh daemon: forking plugs: [network, network-bind] From ef5db94a893ea3b0642c0f88ecb67011df8b7026 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 3 Jul 2020 16:00:04 +0200 Subject: [PATCH 4/4] Publish pre-releases to beta channels Extra important for NPM which doesn't allow replacing a release once it is published. --- .github/workflows/deploy.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 75a566bd..b65ade9f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -14,6 +14,11 @@ jobs: - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + if: ${{ !github.event.release.prerelease }} + - run: npm publish --access public --tag beta + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + if: ${{ github.event.release.prerelease }} snap: runs-on: ubuntu-latest container: snapcore/snapcraft @@ -36,3 +41,6 @@ jobs: env: SNAPCRAFT_LOGIN: ${{secrets.SNAPCRAFT_LOGIN}} - run: snapcraft push --release=stable *.snap + if: ${{ !github.event.release.prerelease }} + - run: snapcraft push --release=beta *.snap + if: ${{ github.event.release.prerelease }}