diff --git a/.circleci/config.yml b/.circleci/config.yml
index 17a37c5d3c..adc592c1c4 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -175,10 +175,83 @@ jobs:
key: remixdesktop-windows-deps-{{ checksum "apps/remixdesktop/yarn.lock" }}
paths:
- apps/remixdesktop/node_modules
+ - persist_to_workspace:
+ root: apps/remixdesktop
+ paths:
+ - "release"
+ # see https://docs.digicert.com/en/software-trust-manager/ci-cd-integrations/script-integrations/github-integration-ksp.html
+ sign-remixdesktop-windows:
+ executor: win/default # executor type
+ working_directory: ~/remix-project
+ steps:
+ - checkout
+ - attach_workspace:
+ at: .
+ - run:
+ name: "Certificate-Setup"
+ shell: powershell.exe
+ command: |
+ cd C:\
+ New-Item C:\CERT_FILE.p12.b64
+ Set-Content -Path C:\CERT_FILE.p12.b64 -Value $env:SM_CLIENT_CERT_FILE_B64
+ certutil -decode CERT_FILE.p12.b64 Certificate_pkcs12.p12
+ cat Certificate_pkcs12.p12
+ - restore_cache:
+ name: Restore smtools-windows-x64.msi
+ keys:
+ - dl-smtools-windows-x64.msi
+ - run:
+ name: "Client-Tool-Download"
+ shell: powershell.exe
+ command: |
+ cd C:\
+ if (Test-Path 'c:\smtools-windows-x64.msi') {
+ echo 'File exists, skipping download...'
+ } else {
+ echo 'Downloading smtools-windows-x64.msi ...'
+ curl.exe -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/smtools-windows-x64.msi/download -H "x-api-key:$env:SM_API_KEY" -o smtools-windows-x64.msi
+ }
+ - save_cache:
+ key: dl-smtools-windows-x64.msi
+ paths:
+ - c:\smtools-windows-x64.msi
+ - run:
+ name: "Client-Tool-Setup"
+ shell: powershell.exe
+ command: |
+ cd C:\
+ msiexec.exe /i smtools-windows-x64.msi /quiet /qn | Wait-Process
+ & $env:SSM\smksp_cert_sync.exe
+ & $env:SSM\smctl.exe healthcheck
+ - run:
+ name: "Find Signtool"
+ shell: powershell.exe
+ command: |
+ Get-ChildItem -Path 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit' -Filter signtool.exe -Recurse
+ - run:
+ name: "Signtool-Signing"
+ shell: powershell.exe
+ command: |
+ & $env:Signtool sign /sha1 $env:SM_CODE_SIGNING_CERT_SHA1_HASH /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 $env:RemixSetupExe
+ - run:
+ name: "Signtool-Verification"
+ shell: powershell.exe
+ command: |
+ $verify_output = $(& $env:Signtool verify /v /pa $env:RemixSetupExe)
+ echo ${verify_output}
+ if (!$verify_output.Contains("Number of files successfully Verified: 1")) {
+ echo 'Verification failed'
+ exit 1
+ }
- store_artifacts:
- path: apps/remixdesktop/release/
+ path: ~/remix-project/release/
destination: remixdesktop-windows
-
+ environment:
+ SM_CLIENT_CERT_FILE: 'C:\Certificate_pkcs12.p12'
+ Signtool: 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe'
+ SSM: 'C:\Program Files\DigiCert\DigiCert One Signing Manager Tools'
+ RemixSetupExe: 'C:\Users\circleci\remix-project\release\Remix IDE.exe'
+
build-remixdesktop-mac:
macos:
xcode: 14.2.0
@@ -315,16 +388,25 @@ jobs:
- run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules
- run: mkdir node_modules/hardhat && wget https://unpkg.com/hardhat/console.sol -O node_modules/hardhat/console.sol
- run: ls -la ./dist/apps/remix-ide/assets/js
- - run: yarn run selenium-install || yarn run selenium-install
+ - run: yarn run selenium-install --singleDriverInstall=firefox
- when:
condition:
equal: [ "chrome", << parameters.browser >> ]
steps:
+ - run: mkdir -p node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
- run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
- - run:
- name: Start Selenium
- command: yarn run selenium
- background: true
+ - run:
+ name: run selenium
+ command: yarn selenium-standalone start --singleDriverStart=chrome
+ background: true
+ - when:
+ condition:
+ equal: [ "firefox", << parameters.browser >> ]
+ steps:
+ - run:
+ name: run selenium
+ command: yarn selenium-standalone start --singleDriverStart=firefox
+ background: true
- run: ./apps/remix-ide/ci/<< parameters.script >> << parameters.browser >> << parameters.jobsize >> << parameters.job >>
- store_test_results:
path: ./reports/tests
@@ -366,11 +448,12 @@ jobs:
- run: unzip ./persist/dist.zip
- run: unzip ./persist/plugin-<< parameters.plugin >>.zip
- run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules
- - run: yarn run selenium-install || yarn run selenium-install
+ - run: yarn run selenium-install --singleDriverInstall=firefox
+ - run: mkdir -p node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
- run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
- run:
name: Start Selenium
- command: yarn run selenium
+ command: yarn run selenium --singleDriverStart=chrome
background: true
- run: ./apps/remix-ide/ci/browser_test_plugin.sh << parameters.plugin >>
- store_test_results:
@@ -452,6 +535,9 @@ workflows:
- build-remixdesktop-windows:
requires:
- build-desktop
+ - sign-remixdesktop-windows:
+ requires:
+ - build-remixdesktop-windows
- build-remixdesktop-linux:
requires:
- build-desktop
diff --git a/.github/workflows/pr-reminder.yml b/.github/workflows/pr-reminder.yml
index 8e00ba0b32..532a7555b1 100644
--- a/.github/workflows/pr-reminder.yml
+++ b/.github/workflows/pr-reminder.yml
@@ -14,4 +14,4 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
- freeze-date: '2024-01-29T18:00:00Z'
+ freeze-date: '2024-02-26T18:00:00Z'
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 91fe2eab31..0a32c9a0d0 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -1,4 +1,4 @@
-# This dockerfile is to build each branch seperately (for dev purposes)
+# This dockerfile is to build each branch separately (for dev purposes)
FROM node:10
# Create Remix user, don't use root!
# RUN yes | adduser --disabled-password remix && mkdir /app
diff --git a/apps/circuit-compiler/src/app/components/feedback.tsx b/apps/circuit-compiler/src/app/components/feedback.tsx
index 5b61794281..9fe7bc3d23 100644
--- a/apps/circuit-compiler/src/app/components/feedback.tsx
+++ b/apps/circuit-compiler/src/app/components/feedback.tsx
@@ -45,8 +45,7 @@ export function CompilerFeedback ({ feedback, filePathToId, hideWarnings, openEr