diff --git a/.circleci/config.yml b/.circleci/config.yml index ac9f435ea0..d24455b269 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -126,7 +126,7 @@ jobs: yarn add node-pty yarn --ignore-optional yarn add @remix-project/remix-ws-templates - yarn dist + ./rundist.bash - run: name: "Run tests" command: | @@ -154,7 +154,7 @@ jobs: yarn add node-pty yarn --ignore-optional yarn add @remix-project/remix-ws-templates - yarn dist + ./rundist.bash rm -rf release/*-unpacked - save_cache: key: remixdesktop-linux-deps-{{ checksum "apps/remixdesktop/yarn.lock" }} @@ -208,7 +208,7 @@ jobs: cp -r dist/apps/remix-ide apps/remixdesktop/build cd apps/remixdesktop/ yarn - yarn dist + ./rundist.bash rm -rf release/*-unpacked - save_cache: key: remixdesktop-windows-deps-{{ checksum "apps/remixdesktop/yarn.lock" }} @@ -262,7 +262,7 @@ jobs: nvm use 20.0.0 node -v yarn - yarn dist + ./rundist.bash - run: name: start tests offline command: | @@ -438,7 +438,7 @@ jobs: nvm use 20 cd apps/remixdesktop yarn installRipGrepMacOX<< parameters.arch >> - PUBLISH_FOR_PULL_REQUEST='false' USE_HARD_LINKS=false yarn dist --<< parameters.arch >> + PUBLISH_FOR_PULL_REQUEST='false' USE_HARD_LINKS=false ./rundist.bash --<< parameters.arch >> cat release/latest-mac.yml mv release/latest-mac.yml release/latest-mac-<< parameters.arch >>.yml - run: @@ -502,7 +502,7 @@ jobs: nvm use 20 cd apps/remixdesktop yarn installRipGrepMacOXarm64 - PUBLISH_FOR_PULL_REQUEST='false' USE_HARD_LINKS=false yarn dist --arm64 + PUBLISH_FOR_PULL_REQUEST='false' USE_HARD_LINKS=false ./rundist.bash --arm64 - run: name: "Run tests" command: | diff --git a/apps/remixdesktop/alpha.json b/apps/remixdesktop/alpha.json new file mode 100644 index 0000000000..3922d7123f --- /dev/null +++ b/apps/remixdesktop/alpha.json @@ -0,0 +1,62 @@ +{ + "productName": "Remix-Desktop-alpha", + "appId": "org.ethereum.remix-ide", + "asar": true, + "generateUpdatesFilesForAllChannels": true, + "icon": "assets", + "files": [ + "build/**/*" + ], + "afterSign": "aftersign.js", + "afterAllArtifactBuild": "afterbuild.js", + "publish": [ + { + "provider": "github", + "owner": "remix-project-org", + "repo": "remix-desktop", + "releaseType": "draft", + "publishAutoUpdate": true, + "channel": "alpha" + } + ], + "mac": { + "category": "public.app-category.productivity", + "icon": "assets/icon.png", + "darkModeSupport": true, + "hardenedRuntime": true, + "gatekeeperAssess": false, + "entitlements": "entitlements.mac.plist", + "entitlementsInherit": "entitlements.mac.plist" + }, + "dmg": { + "writeUpdateInfo": true, + "sign": true + }, + "nsis": { + "createDesktopShortcut": "always", + "allowToChangeInstallationDirectory": true, + "oneClick": false, + "shortcutName": "Remix Desktop alpha", + "differentialPackage": false + }, + "win": { + "target": [ + "nsis" + ], + "artifactName": "${productName}-Setup-${version}.${ext}", + "icon": "assets/icon.png" + }, + "deb": {}, + "linux": { + "target": [ + "deb", + "snap", + "AppImage" + ], + "category": "WebBrowser", + "icon": "assets" + }, + "directories": { + "output": "release" + } +} \ No newline at end of file diff --git a/apps/remixdesktop/beta.json b/apps/remixdesktop/beta.json new file mode 100644 index 0000000000..99cf66d55b --- /dev/null +++ b/apps/remixdesktop/beta.json @@ -0,0 +1,62 @@ +{ + "productName": "Remix-Desktop-Beta", + "appId": "org.ethereum.remix-ide", + "asar": true, + "generateUpdatesFilesForAllChannels": true, + "icon": "assets", + "files": [ + "build/**/*" + ], + "afterSign": "aftersign.js", + "afterAllArtifactBuild": "afterbuild.js", + "publish": [ + { + "provider": "github", + "owner": "remix-project-org", + "repo": "remix-desktop", + "releaseType": "draft", + "publishAutoUpdate": true, + "channel": "beta" + } + ], + "mac": { + "category": "public.app-category.productivity", + "icon": "assets/icon.png", + "darkModeSupport": true, + "hardenedRuntime": true, + "gatekeeperAssess": false, + "entitlements": "entitlements.mac.plist", + "entitlementsInherit": "entitlements.mac.plist" + }, + "dmg": { + "writeUpdateInfo": true, + "sign": true + }, + "nsis": { + "createDesktopShortcut": "always", + "allowToChangeInstallationDirectory": true, + "oneClick": false, + "shortcutName": "Remix Desktop Beta", + "differentialPackage": false + }, + "win": { + "target": [ + "nsis" + ], + "artifactName": "${productName}-Setup-${version}.${ext}", + "icon": "assets/icon.png" + }, + "deb": {}, + "linux": { + "target": [ + "deb", + "snap", + "AppImage" + ], + "category": "WebBrowser", + "icon": "assets" + }, + "directories": { + "output": "release" + } +} \ No newline at end of file diff --git a/apps/remixdesktop/latest.json b/apps/remixdesktop/latest.json new file mode 100644 index 0000000000..cba8e8dcf3 --- /dev/null +++ b/apps/remixdesktop/latest.json @@ -0,0 +1,62 @@ +{ + "productName": "Remix-Desktop", + "appId": "org.ethereum.remix-ide", + "asar": true, + "generateUpdatesFilesForAllChannels": true, + "icon": "assets", + "files": [ + "build/**/*" + ], + "afterSign": "aftersign.js", + "afterAllArtifactBuild": "afterbuild.js", + "publish": [ + { + "provider": "github", + "owner": "remix-project-org", + "repo": "remix-desktop", + "releaseType": "draft", + "publishAutoUpdate": true, + "channel": "latest" + } + ], + "mac": { + "category": "public.app-category.productivity", + "icon": "assets/icon.png", + "darkModeSupport": true, + "hardenedRuntime": true, + "gatekeeperAssess": false, + "entitlements": "entitlements.mac.plist", + "entitlementsInherit": "entitlements.mac.plist" + }, + "dmg": { + "writeUpdateInfo": true, + "sign": true + }, + "nsis": { + "createDesktopShortcut": "always", + "allowToChangeInstallationDirectory": true, + "oneClick": false, + "shortcutName": "Remix Desktop", + "differentialPackage": false + }, + "win": { + "target": [ + "nsis" + ], + "artifactName": "${productName}-Setup-${version}.${ext}", + "icon": "assets/icon.png" + }, + "deb": {}, + "linux": { + "target": [ + "deb", + "snap", + "AppImage" + ], + "category": "WebBrowser", + "icon": "assets" + }, + "directories": { + "output": "release" + } +} \ No newline at end of file diff --git a/apps/remixdesktop/package.json b/apps/remixdesktop/package.json index ac14207be9..50ebaa249d 100644 --- a/apps/remixdesktop/package.json +++ b/apps/remixdesktop/package.json @@ -69,66 +69,5 @@ }, "optionalDependencies": { "@remix-project/remix-ws-templates": "^1.0.27" - }, - "build": { - "productName": "Remix-Desktop", - "appId": "org.ethereum.remix-ide", - "asar": true, - "generateUpdatesFilesForAllChannels": true, - "icon": "assets", - "files": [ - "build/**/*" - ], - "afterSign": "aftersign.js", - "afterAllArtifactBuild": "afterbuild.js", - "publish": [ - { - "provider": "github", - "owner": "remix-project-org", - "repo": "remix-desktop", - "releaseType": "draft", - "publishAutoUpdate": true - } - ], - "mac": { - "category": "public.app-category.productivity", - "icon": "assets/icon.png", - "darkModeSupport": true, - "hardenedRuntime": true, - "gatekeeperAssess": false, - "entitlements": "entitlements.mac.plist", - "entitlementsInherit": "entitlements.mac.plist" - }, - "dmg": { - "writeUpdateInfo": true, - "sign": true - }, - "nsis": { - "createDesktopShortcut": "always", - "allowToChangeInstallationDirectory": true, - "oneClick": false, - "shortcutName": "Remix Desktop", - "differentialPackage": false - }, - "win": { - "target": [ - "nsis" - ], - "artifactName": "${productName}-Setup-${version}.${ext}", - "icon": "assets/icon.png" - }, - "deb": {}, - "linux": { - "target": [ - "deb", - "snap", - "AppImage" - ], - "category": "WebBrowser", - "icon": "assets" - }, - "directories": { - "output": "release" - } } } diff --git a/apps/remixdesktop/rundist.bash b/apps/remixdesktop/rundist.bash new file mode 100755 index 0000000000..212c25c45f --- /dev/null +++ b/apps/remixdesktop/rundist.bash @@ -0,0 +1,22 @@ +#!/bin/bash + +# Read the version from package.json +version=$(grep -oP '"version":\s*"\K[0-9a-zA-Z.-]+' package.json) + +# Determine the command to run based on the version +if [[ $version == *"beta"* ]]; then + command="yarn dist -c beta.json" +elif [[ $version == *"alpha"* ]]; then + command="yarn dist -c alpha.json" +else + command="yarn dist -c latest.json" +fi + +# Append any arguments passed in CLI +for arg in "$@"; do + command+=" $arg" +done + +# Print and run the command +echo "Running command: $command" +$command diff --git a/apps/remixdesktop/yarn.lock b/apps/remixdesktop/yarn.lock index d85a069a8a..3931cd042a 100644 --- a/apps/remixdesktop/yarn.lock +++ b/apps/remixdesktop/yarn.lock @@ -46,10 +46,10 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/notarize@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.1.0.tgz#76aaec10c8687225e8d0a427cc9df67611c46ff3" - integrity sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA== +"@electron/notarize@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.2.1.tgz#d0aa6bc43cba830c41bfd840b85dbe0e273f59fe" + integrity sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg== dependencies: debug "^4.1.1" fs-extra "^9.0.1" @@ -76,10 +76,10 @@ minimist "^1.2.6" plist "^3.0.5" -"@electron/universal@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.4.1.tgz#3fbda2a5ed9ff9f3304c8e8316b94c1e3a7b3785" - integrity sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ== +"@electron/universal@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.5.1.tgz#f338bc5bcefef88573cf0ab1d5920fac10d06ee5" + integrity sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw== dependencies: "@electron/asar" "^3.2.1" "@malept/cross-spawn-promise" "^1.1.0" @@ -1037,26 +1037,25 @@ app-builder-bin@4.0.0: resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz" integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== -app-builder-lib@24.9.1: - version "24.9.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.9.1.tgz#bf3568529298b4de8595ed1acbb351fe27db5ba4" - integrity sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g== +app-builder-lib@24.13.3: + version "24.13.3" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.13.3.tgz#36e47b65fecb8780bb73bff0fee4e0480c28274b" + integrity sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig== dependencies: - "7zip-bin" "~5.2.0" "@develar/schema-utils" "~2.6.5" - "@electron/notarize" "2.1.0" + "@electron/notarize" "2.2.1" "@electron/osx-sign" "1.0.5" - "@electron/universal" "1.4.1" + "@electron/universal" "1.5.1" "@malept/flatpak-bundler" "^0.4.0" "@types/fs-extra" "9.0.13" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "24.8.1" - builder-util-runtime "9.2.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chromium-pickle-js "^0.2.0" debug "^4.3.4" ejs "^3.1.8" - electron-publish "24.8.1" + electron-publish "24.13.1" form-data "^4.0.0" fs-extra "^10.1.0" hosted-git-info "^4.1.0" @@ -1437,24 +1436,24 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.3.0" -builder-util-runtime@9.2.3: - version "9.2.3" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz#0a82c7aca8eadef46d67b353c638f052c206b83c" - integrity sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw== +builder-util-runtime@9.2.4: + version "9.2.4" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz#13cd1763da621e53458739a1e63f7fcba673c42a" + integrity sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA== dependencies: debug "^4.3.4" sax "^1.2.4" -builder-util@24.8.1: - version "24.8.1" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.8.1.tgz#594d45b0c86d1d17f5c7bebbb77405080b2571c2" - integrity sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw== +builder-util@24.13.1: + version "24.13.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.13.1.tgz#4a4c4f9466b016b85c6990a0ea15aa14edec6816" + integrity sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA== dependencies: "7zip-bin" "~5.2.0" "@types/debug" "^4.1.6" app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "9.2.3" + builder-util-runtime "9.2.4" chalk "^4.1.2" cross-spawn "^7.0.3" debug "^4.3.4" @@ -2064,14 +2063,14 @@ dir-compare@^3.0.0: buffer-equal "^1.0.0" minimatch "^3.0.4" -dmg-builder@24.9.1: - version "24.9.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.9.1.tgz#04bf6c0dcd235f6214511f2358a78ed2b9379421" - integrity sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ== +dmg-builder@24.13.3: + version "24.13.3" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.13.3.tgz#95d5b99c587c592f90d168a616d7ec55907c7e55" + integrity sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ== dependencies: - app-builder-lib "24.9.1" - builder-util "24.8.1" - builder-util-runtime "9.2.3" + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" fs-extra "^10.1.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" @@ -2144,16 +2143,16 @@ ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-builder@^24.9.1: - version "24.9.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.9.1.tgz#4aee03947963b829a7f48a850fe02c219311ef63" - integrity sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg== +electron-builder@^24.13.3: + version "24.13.3" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.13.3.tgz#c506dfebd36d9a50a83ee8aa32d803d83dbe4616" + integrity sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg== dependencies: - app-builder-lib "24.9.1" - builder-util "24.8.1" - builder-util-runtime "9.2.3" + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chalk "^4.1.2" - dmg-builder "24.9.1" + dmg-builder "24.13.3" fs-extra "^10.1.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -2171,25 +2170,25 @@ electron-devtools-installer@^3.2.0: tslib "^2.1.0" unzip-crx-3 "^0.2.0" -electron-publish@24.8.1: - version "24.8.1" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.8.1.tgz#4216740372bf4297a429543402a1a15ce8c3560b" - integrity sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw== +electron-publish@24.13.1: + version "24.13.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.13.1.tgz#57289b2f7af18737dc2ad134668cdd4a1b574a0c" + integrity sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "24.8.1" - builder-util-runtime "9.2.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chalk "^4.1.2" fs-extra "^10.1.0" lazy-val "^1.0.5" mime "^2.5.2" -electron-updater@^6.1.8: - version "6.1.8" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.1.8.tgz#17637bca165322f4e526b13c99165f43e6f697d8" - integrity sha512-hhOTfaFAd6wRHAfUaBhnAOYc+ymSGCWJLtFkw4xJqOvtpHmIdNHnXDV9m1MHC+A6q08Abx4Ykgyz/R5DGKNAMQ== +electron-updater@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.2.1.tgz#1c9adb9ba2a21a5dc50a8c434c45360d5e9fe6c9" + integrity sha512-83eKIPW14qwZqUUM6wdsIRwVKZyjmHxQ4/8G+1C6iS5PdDt7b1umYQyj1/qPpH510GmHEQe4q0kCPe3qmb3a0Q== dependencies: - builder-util-runtime "9.2.3" + builder-util-runtime "9.2.4" fs-extra "^10.1.0" js-yaml "^4.1.0" lazy-val "^1.0.5"