From 9af62fbde7271bd9fbdcec085777b3ed6075fbbe Mon Sep 17 00:00:00 2001 From: Anes Belfodil Date: Wed, 28 Oct 2020 14:35:31 -0400 Subject: [PATCH 1/3] Draft release --- .github/workflows/backend.yml | 66 ++++++++++++++++++---- .github/workflows/delete-draft-release.yml | 18 ++++++ .github/workflows/mobile.yml | 33 +++++++++-- .github/workflows/web.yml | 2 +- 4 files changed, 101 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/delete-draft-release.yml diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 48bc08dc..64ea6074 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -29,25 +29,18 @@ jobs: - run: python -m PyInstaller --onefile app.py - uses: actions/upload-artifact@v2 with: - name: "server_${{ matrix.os }}" + name: "server_${{ runner.os }}" path: backend/dist - release: + docker-release: if: github.ref == 'refs/heads/master' - - strategy: - matrix: - os: [ubuntu-latest] - - runs-on: ${{ matrix.os }} - + runs-on: ubuntu-latest needs: build - steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 with: - name: "server_${{ matrix.os }}" + name: server_Linux path: backend/dist - uses: docker/build-push-action@v1 with: @@ -57,3 +50,54 @@ jobs: registry: docker.pkg.github.com/polycortex/polydodo repository: backend tags: latest + + release: + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v2 + + - uses: release-drafter/release-drafter@v5 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/download-artifact@v2 + with: + name: server_Linux + path: backend/dist/linux + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./backend/dist/linux/app + asset_name: server-linux + asset_content_type: application/octet-stream + + - uses: actions/download-artifact@v2 + with: + name: server_Windows + path: backend/dist/windows + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./backend/dist/windows/app.exe + asset_name: server-windows.exe + asset_content_type: application/octet-stream + + - uses: actions/download-artifact@v2 + with: + name: server_macOS + path: backend/dist/macos + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./backend/dist/macos/app + asset_name: server-macos + asset_content_type: application/octet-stream diff --git a/.github/workflows/delete-draft-release.yml b/.github/workflows/delete-draft-release.yml new file mode 100644 index 00000000..964991e0 --- /dev/null +++ b/.github/workflows/delete-draft-release.yml @@ -0,0 +1,18 @@ +# This file exists because of https://github.com/actions/upload-release-asset/pull/22 + +on: + push: + branches: + - master + +name: Delete Draft Releases + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Delete drafts + uses: hugo19941994/delete-draft-releases@v0.1.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index 8ff28dc1..b8ca77a6 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -31,11 +31,32 @@ jobs: - run: flutter build apk - uses: actions/upload-artifact@v2 with: - name: Android app - path: mobile/build/app/outputs/flutter-apk/app-release.apk + name: Android + path: mobile/build/app/outputs/flutter-apk - - run: flutter build ios --release --no-codesign - - uses: actions/upload-artifact@v2 + - run: flutter build ios --no-codesign + + release: + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v2 + + - uses: release-drafter/release-drafter@v5 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/download-artifact@v2 + with: + name: Android + path: mobile/out + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - name: iOS app - path: mobile/build/ios/iphoneos/Runner.app + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./mobile/out/app-release.apk + asset_name: app-android.apk + asset_content_type: application/octet-stream diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml index 8c04845e..ccae1887 100644 --- a/.github/workflows/web.yml +++ b/.github/workflows/web.yml @@ -23,9 +23,9 @@ jobs: path: web/build release: + if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest needs: build - if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 From 3777a3bbadb44464fb4c1821894bdc172fb8ff80 Mon Sep 17 00:00:00 2001 From: Anes Belfodil Date: Wed, 28 Oct 2020 14:28:51 -0400 Subject: [PATCH 2/3] Add release download links --- web/package.json | 2 + web/src/requests/latest_release.js | 29 ++++ .../analyze_sleep/waiting_for_server/index.js | 46 ++++-- web/yarn.lock | 132 ++++++++++++++++++ 4 files changed, 198 insertions(+), 11 deletions(-) create mode 100644 web/src/requests/latest_release.js diff --git a/web/package.json b/web/package.json index f61ccdf6..ebe28b96 100644 --- a/web/package.json +++ b/web/package.json @@ -23,6 +23,7 @@ "not op_mini all" ], "dependencies": { + "@octokit/rest": "^18.0.6", "argon-design-system-react": "^1.1.0", "axios": "^0.20.0", "axios-observable": "^1.1.3", @@ -30,6 +31,7 @@ "classnames": "2.2.6", "d3": "^5.16.0", "d3-tip": "^0.9.1", + "detect-browser": "^5.2.0", "headroom.js": "^0.11.0", "luxon": "^1.25.0", "node-sass": "4.14.1", diff --git a/web/src/requests/latest_release.js b/web/src/requests/latest_release.js new file mode 100644 index 00000000..0d939e6c --- /dev/null +++ b/web/src/requests/latest_release.js @@ -0,0 +1,29 @@ +import { Octokit } from '@octokit/rest'; +import { detect } from 'detect-browser'; + +const octokit = new Octokit(); + +const getPublishedReleases = async () => { + const releases = await octokit.repos.listReleases({ owner: 'polycortex', repo: 'polydodo' }); + const publishedReleases = releases.data.filter((release) => !release.draft); + return publishedReleases; +}; + +const assetDisplayNameMap = { + 'server-linux': 'Linux', + 'server-macos': 'Mac OS', + 'server-windows.exe': 'Windows', +}; + +const currentOsName = detect().os; + +export const getLatestServerReleaseAssets = async () => { + const latestRelease = (await getPublishedReleases())[0]; + return latestRelease.assets + .filter((asset) => asset.name.startsWith('server')) + .map((asset) => ({ + name: assetDisplayNameMap[asset.name], + currentOs: currentOsName.includes(assetDisplayNameMap[asset.name]), + url: asset.browser_download_url, + })); +}; diff --git a/web/src/views/analyze_sleep/waiting_for_server/index.js b/web/src/views/analyze_sleep/waiting_for_server/index.js index 19be741f..4a5a1854 100644 --- a/web/src/views/analyze_sleep/waiting_for_server/index.js +++ b/web/src/views/analyze_sleep/waiting_for_server/index.js @@ -1,15 +1,39 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import { Container, Row, Col, Spinner } from 'reactstrap'; +import { getLatestServerReleaseAssets } from 'requests/latest_release'; +import { ListGroup, ListGroupItem } from 'reactstrap'; -const WaitingForServer = () => ( - -

Waiting for local server to be running...

- - - - - -
-); +const WaitingForServer = () => { + const [assets, setAssets] = useState([]); + + useEffect(() => { + getLatestServerReleaseAssets().then((assets) => setAssets(assets)); + }, [setAssets]); + + return ( + +

Waiting for local server to be running...

+ +

Download latest server release

+ + + + {assets.map((asset) => ( + + {asset.name} + + ))} + + + + + + + + + +
+ ); +}; export default WaitingForServer; diff --git a/web/yarn.lock b/web/yarn.lock index 0af92a60..e5806366 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -1372,6 +1372,103 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@octokit/auth-token@^2.4.0": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/core@^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.2.0.tgz#7a872ad4cb8d8d2f417dd7fe1aaff3919c09dc04" + integrity sha512-42jzu1GWlCr4KUo52X4hD3if2AwjNJLzsS8mqUs9JkJbsM3vzvSx8AqTnVBQjOM0hQMYBqR7/7SAUTfH7IZqIg== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/graphql" "^4.3.1" + "@octokit/request" "^5.4.0" + "@octokit/types" "^5.0.0" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.8.tgz#91b07e236fdb69929c678c6439f7a560dc6058ac" + integrity sha512-MuRrgv+bM4Q+e9uEvxAB/Kf+Sj0O2JAOBA131uo1o6lgdq1iS8ejKwtqHgdfY91V3rN9R/hdGKFiQYMzVzVBEQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.3.1": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.6.tgz#708143ba15cf7c1879ed6188266e7f270be805d4" + integrity sha512-Rry+unqKTa3svswT2ZAuqenpLrzJd+JTv89LTeVa5UM/5OX8o4KTkPL7/1ABq4f/ZkELb0XEK/2IEoYwykcLXg== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.4.0.tgz#92f951ddc8a1cd505353fa07650752ca25ed7e93" + integrity sha512-YT6Klz3LLH6/nNgi0pheJnUmTFW4kVnxGft+v8Itc41IIcjl7y1C8TatmKQBbCSuTSNFXO5pCENnqg6sjwpJhg== + dependencies: + "@octokit/types" "^5.5.0" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" + integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== + +"@octokit/plugin-rest-endpoint-methods@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.0.tgz#c5a0691b3aba5d8b4ef5dffd6af3649608f167ba" + integrity sha512-1/qn1q1C1hGz6W/iEDm9DoyNoG/xdFDt78E3eZ5hHeUfJTLJgyAMdj9chL/cNBHjcjd+FH5aO1x0VCqR2RE0mw== + dependencies: + "@octokit/types" "^5.5.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.9" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.9.tgz#0a46f11b82351b3416d3157261ad9b1558c43365" + integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + deprecation "^2.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.6": + version "18.0.6" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.6.tgz#76c274f1a68f40741a131768ef483f041e7b98b6" + integrity sha512-ES4lZBKPJMX/yUoQjAZiyFjei9pJ4lTTfb9k7OtYoUzKPDLl/M8jiHqt6qeSauyU4eZGLw0sgP1WiQl9FYeM5w== + dependencies: + "@octokit/core" "^3.0.0" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "4.2.0" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" + integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== + dependencies: + "@types/node" ">= 8" + "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" @@ -1556,6 +1653,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== +"@types/node@>= 8": + version "14.14.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.5.tgz#e92d3b8f76583efa26c1a63a21c9d3c1143daa29" + integrity sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -2403,6 +2505,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -4005,6 +4112,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -4018,6 +4130,11 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-browser@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" + integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== + detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -6144,6 +6261,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-regex@^1.0.4, is-regex@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" @@ -7582,6 +7704,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" @@ -11261,6 +11388,11 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" From 61f84ff79178c191e242358dbac6b2c72c7bb646 Mon Sep 17 00:00:00 2001 From: Anes Belfodil Date: Thu, 29 Oct 2020 11:30:44 -0400 Subject: [PATCH 3/3] Address comments --- .github/workflows/backend.yml | 24 ++++++++++++++---------- .github/workflows/mobile.yml | 2 +- web/src/requests/latest_release.js | 22 +++++++++++----------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 64ea6074..d0a77126 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -67,37 +67,41 @@ jobs: with: name: server_Linux path: backend/dist/linux + - run: chmod +x backend/dist/linux/app + - run: tar -pczvf linux.tar.gz -C backend/dist/linux app - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./backend/dist/linux/app - asset_name: server-linux + asset_path: ./linux.tar.gz + asset_name: polydodo_server_standalone_linux-x64.tar.gz asset_content_type: application/octet-stream - uses: actions/download-artifact@v2 with: - name: server_Windows - path: backend/dist/windows + name: server_macOS + path: backend/dist/macos + - run: chmod +x backend/dist/macos/app + - run: tar -pczvf macos.tar.gz -C backend/dist/macos app - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./backend/dist/windows/app.exe - asset_name: server-windows.exe + asset_path: ./macos.tar.gz + asset_name: polydodo_server_standalone_macos-x64.tar.gz asset_content_type: application/octet-stream - uses: actions/download-artifact@v2 with: - name: server_macOS - path: backend/dist/macos + name: server_Windows + path: backend/dist/windows - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./backend/dist/macos/app - asset_name: server-macos + asset_path: ./backend/dist/windows/app.exe + asset_name: polydodo_server_standalone_windows-x64.exe asset_content_type: application/octet-stream diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index b8ca77a6..0d7f034c 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -58,5 +58,5 @@ jobs: with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./mobile/out/app-release.apk - asset_name: app-android.apk + asset_name: polydodo_app_android.apk asset_content_type: application/octet-stream diff --git a/web/src/requests/latest_release.js b/web/src/requests/latest_release.js index 0d939e6c..83df49ee 100644 --- a/web/src/requests/latest_release.js +++ b/web/src/requests/latest_release.js @@ -3,27 +3,27 @@ import { detect } from 'detect-browser'; const octokit = new Octokit(); +const CURRENT_OS_NAME = detect().os; + +const ASSET_DISPLAYNAME_MAP = { + 'polydodo_server_standalone_linux-x64.tar.gz': 'Linux', + 'polydodo_server_standalone_macos-x64.tar.gz': 'Mac OS', + 'polydodo_server_standalone_windows-x64.exe': 'Windows', +}; + const getPublishedReleases = async () => { const releases = await octokit.repos.listReleases({ owner: 'polycortex', repo: 'polydodo' }); const publishedReleases = releases.data.filter((release) => !release.draft); return publishedReleases; }; -const assetDisplayNameMap = { - 'server-linux': 'Linux', - 'server-macos': 'Mac OS', - 'server-windows.exe': 'Windows', -}; - -const currentOsName = detect().os; - export const getLatestServerReleaseAssets = async () => { const latestRelease = (await getPublishedReleases())[0]; return latestRelease.assets - .filter((asset) => asset.name.startsWith('server')) + .filter((asset) => asset.name.startsWith('polydodo_server')) .map((asset) => ({ - name: assetDisplayNameMap[asset.name], - currentOs: currentOsName.includes(assetDisplayNameMap[asset.name]), + name: ASSET_DISPLAYNAME_MAP[asset.name], + currentOs: CURRENT_OS_NAME.includes(ASSET_DISPLAYNAME_MAP[asset.name]), url: asset.browser_download_url, })); };