Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
09ec650
chore: add github actions workflow
ThatDeparted2061 Mar 12, 2025
9d42095
fix: errors in github workflow
ThatDeparted2061 Mar 12, 2025
a38dbf2
fix: mac os build
ThatDeparted2061 Mar 12, 2025
9320a89
fox linux build
ThatDeparted2061 Mar 12, 2025
ecc8f1c
Fix: for ubuntu 24.04
ThatDeparted2061 Mar 12, 2025
f5d9981
Fix: ubuntu fix
ThatDeparted2061 Mar 12, 2025
4da9b26
Fix: windows fix
ThatDeparted2061 Mar 12, 2025
25dff1d
chore: add build desktop.js
ThatDeparted2061 Mar 12, 2025
b522526
update package.json
ThatDeparted2061 Mar 12, 2025
6e6670d
fix css warnings
ThatDeparted2061 Mar 12, 2025
0bfb41b
fix: address ubuntu bild failures
ThatDeparted2061 Mar 12, 2025
a46b001
fix: try ubuntu older version
ThatDeparted2061 Mar 12, 2025
d320345
fix: try ubuntu older version
ThatDeparted2061 Mar 12, 2025
42f6991
fix: try ubuntu older version
ThatDeparted2061 Mar 12, 2025
89438b2
chore: make ubuntu build to latest
ThatDeparted2061 Mar 12, 2025
78c6122
fix: resolve coderabbit
ThatDeparted2061 Mar 12, 2025
564f7ba
fix: resolve linting errors
ThatDeparted2061 Mar 12, 2025
102df6b
chore: update linux build as per tauri v2
ThatDeparted2061 Mar 13, 2025
e0f7288
chore: seperate job release for ubuntu
ThatDeparted2061 Mar 13, 2025
3a3ef20
chore: Combine CI
ThatDeparted2061 Mar 17, 2025
8d4b30c
chore: upgrade codeQl to v3 to address deprecation
ThatDeparted2061 Mar 17, 2025
227cfcd
chore: add desktop test
ThatDeparted2061 Mar 17, 2025
533b2b0
fix: fix ci failures
ThatDeparted2061 Mar 17, 2025
153913a
fix:fix tauri build failure
ThatDeparted2061 Mar 17, 2025
5785687
fix:fix tauri build failure
ThatDeparted2061 Mar 17, 2025
1ae3da6
refactor: update package.json
ThatDeparted2061 Mar 17, 2025
64f9406
chore: add CD.yml
ThatDeparted2061 Mar 17, 2025
81b858d
chore: create release.yml
ThatDeparted2061 Mar 24, 2025
741c7f5
chore: create release.yml
ThatDeparted2061 Mar 24, 2025
dbfb173
add
ThatDeparted2061 Mar 24, 2025
9cb35ae
add
ThatDeparted2061 Mar 24, 2025
7811918
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Mar 29, 2025
80c9ca0
showcase
ThatDeparted2061 Apr 8, 2025
2bc0178
chore: upgrade workflows
ThatDeparted2061 Apr 8, 2025
fb2b79d
resolve codeql
ThatDeparted2061 Apr 8, 2025
f612a0b
resolve json
ThatDeparted2061 Apr 8, 2025
acbf6c6
chore: workflow update
ThatDeparted2061 Apr 8, 2025
3346ce2
chore: test push
ThatDeparted2061 Apr 8, 2025
e501723
test push 2
ThatDeparted2061 Apr 8, 2025
395d062
test push 3
ThatDeparted2061 Apr 8, 2025
9a5ef17
temp changes made
ThatDeparted2061 Apr 8, 2025
2acb66d
making temporary changes for testing
ThatDeparted2061 Apr 8, 2025
5b1df09
making a test change
ThatDeparted2061 Apr 9, 2025
8a64d5c
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Jun 10, 2025
dc1dfd9
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Jul 31, 2025
db86766
feat: Linux code signing
ThatDeparted2061 Aug 2, 2025
a83cda6
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Aug 2, 2025
bf3dc40
fix: add signed asset
ThatDeparted2061 Aug 2, 2025
0c2e998
fix: add signed asset
ThatDeparted2061 Aug 2, 2025
671e59e
fix: add signed asset
ThatDeparted2061 Aug 2, 2025
643564b
fix: add signed asset
ThatDeparted2061 Aug 2, 2025
b6ea9f0
fix: correct imports
ThatDeparted2061 Aug 2, 2025
8bdf0b4
fix: correct imports
ThatDeparted2061 Aug 2, 2025
73fa000
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
fefc1f6
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
cf66b66
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
145e71e
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
6cceca4
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
e45f1a9
fix: update gpg keys
ThatDeparted2061 Aug 2, 2025
27029ba
fix: add linux signing key id to secrets
ThatDeparted2061 Aug 3, 2025
c87d776
fix: add linux signing key id to secrets
ThatDeparted2061 Aug 3, 2025
f5ac2b8
chore: add semantic versioning to the release
ThatDeparted2061 Aug 3, 2025
48db964
fix: fix semantic versioning
ThatDeparted2061 Aug 3, 2025
68014bc
fix: resolve conflicts
ThatDeparted2061 Aug 6, 2025
2671740
fix: backtrack semantic versioning
ThatDeparted2061 Aug 6, 2025
4fecf85
chore: remove .releaserc.json
ThatDeparted2061 Aug 6, 2025
c9d5643
chore: remove semantic-versioning from package.json
ThatDeparted2061 Aug 6, 2025
5e6f58b
fix: fix manual release
ThatDeparted2061 Aug 17, 2025
2e20b2c
fix: fix broken semantic release
ThatDeparted2061 Aug 17, 2025
814d751
fix: fix broken semantic release
ThatDeparted2061 Aug 17, 2025
d523053
fix: fix semantic release
ThatDeparted2061 Aug 17, 2025
3211558
feat: Add conventional commit file
ThatDeparted2061 Aug 17, 2025
dcedb46
chore: add semantic release to tauri release
ThatDeparted2061 Aug 17, 2025
b061e55
chore(release): 3.3.0 [skip ci]
semantic-release-bot Aug 17, 2025
1b2ba95
chore: combine yml files
ThatDeparted2061 Aug 18, 2025
881ca7a
fix: fix the release breakdown
ThatDeparted2061 Aug 18, 2025
ee76b6b
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Sep 2, 2025
4045cc9
Merge branch 'CircuitVerse:main' into main
ThatDeparted2061 Sep 8, 2025
865db81
chore: add workflow dispatch to Release
ThatDeparted2061 Sep 12, 2025
412b4fa
fix: fix version mismatch for tauri
ThatDeparted2061 Sep 12, 2025
25648a9
fix: fix tauri failure
ThatDeparted2061 Sep 12, 2025
c7a6a60
fix: fix version mismatch
ThatDeparted2061 Sep 12, 2025
2dc0a19
fix: fix version mismatch
ThatDeparted2061 Sep 12, 2025
2cd9938
fix: fix version mismatch
ThatDeparted2061 Sep 12, 2025
247eaba
fix: fix version mismatch
ThatDeparted2061 Sep 12, 2025
d4c778f
fix: resolve version mismatch
ThatDeparted2061 Sep 12, 2025
c350bfe
fix: resolve version mismatch
ThatDeparted2061 Sep 12, 2025
9f32f20
chore(release): v3.4.0 [skip ci]
invalid-email-address Sep 12, 2025
ec6dd89
chore: address coderabbit suggestions
ThatDeparted2061 Sep 13, 2025
7c07a78
Merge branch 'main' of https://github.com/ThatDeparted2061/cv-fronten…
ThatDeparted2061 Sep 13, 2025
ab3993f
fix: remove changelog.md
ThatDeparted2061 Sep 13, 2025
d1bbb82
fix: remove stray characters
ThatDeparted2061 Sep 13, 2025
89ff9ad
fix: fix macos file path
ThatDeparted2061 Sep 13, 2025
77d8a37
chore(release): v0.0.1 [skip ci]
invalid-email-address Sep 13, 2025
1eed7ba
fix:correct tags
ThatDeparted2061 Jan 11, 2026
f676ba2
chore(release): v0.0.2 [skip ci]
invalid-email-address Jan 11, 2026
a8f526d
chore: merge upstream/main and resolve conflicts
Git-HimanshuRathi Jan 25, 2026
4ee9977
fix: resolve changelog persistence and workflow issues
Git-HimanshuRathi Jan 25, 2026
236f22a
fix: correct tauri-plugin-fs version
Git-HimanshuRathi Jan 25, 2026
39a833b
fix: address CodeRabbit review suggestions
Git-HimanshuRathi Jan 25, 2026
5a513f8
chore: standardize local version to 0.0.0
Git-HimanshuRathi Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/Conventional-commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Conventional Commits

on:
pull_request:
branches: [ main ]

jobs:
build:
name: Conventional Commits
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: webiny/action-conventional-commits@v1.3.0
312 changes: 312 additions & 0 deletions .github/workflows/Tauri-Release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,312 @@
name: Manually Triggered Desktop Release

permissions:
contents: write
actions: read

concurrency:
group: desktop-release-${{ github.ref }}
cancel-in-progress: true

on:
workflow_dispatch:
inputs:
version-bump:
description: 'The type of version bump (major, minor, or patch)'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major

jobs:
version:
runs-on: ubuntu-latest
outputs:
new_version: ${{ steps.bump.outputs.new_version }}
changelog: ${{ steps.changelog.outputs.clean_changelog }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Compute New Version
id: bump
run: |
set -euo pipefail

# Fetch the latest tag from the repository
LATEST_TAG=$(git tag --sort=-v:refname | head -n 1)
if [[ -z "$LATEST_TAG" ]]; then
LATEST_TAG="v0.0.0"
fi

# Parse the latest tag to get major, minor, and patch numbers
if [[ "$LATEST_TAG" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
MAJOR=${BASH_REMATCH[1]}
MINOR=${BASH_REMATCH[2]}
PATCH=${BASH_REMATCH[3]}
else
echo "Could not parse latest tag: $LATEST_TAG. Starting from v0.0.0."
MAJOR=0; MINOR=0; PATCH=0
fi

# Increment the version based on the manual input
BUMP_TYPE="${{ github.event.inputs.version-bump }}"
if [ "$BUMP_TYPE" == "major" ]; then
MAJOR=$((MAJOR + 1)); MINOR=0; PATCH=0
elif [ "$BUMP_TYPE" == "minor" ]; then
MINOR=$((MINOR + 1)); PATCH=0
else
PATCH=$((PATCH + 1))
fi

NEW_VERSION="v$MAJOR.$MINOR.$PATCH"
VERSION_NO_V="$MAJOR.$MINOR.$PATCH"

echo "new_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
echo "version_no_v=$VERSION_NO_V" >> "$GITHUB_OUTPUT"
echo "New version will be: $NEW_VERSION"

- name: Update Version Files
run: |
VERSION_NO_V="${{ steps.bump.outputs.version_no_v }}"

# Update package.json
jq --arg ver "$VERSION_NO_V" '.version = $ver' package.json > package.json.tmp
mv package.json.tmp package.json

# Update src-tauri/tauri.conf.json
jq --arg ver "$VERSION_NO_V" '.version = $ver' src-tauri/tauri.conf.json > src-tauri/tauri.conf.json.tmp
mv src-tauri/tauri.conf.json.tmp src-tauri/tauri.conf.json

# Update src-tauri/Cargo.toml
sed -i "s/^version = \".*\"/version = \"$VERSION_NO_V\"/" src-tauri/Cargo.toml
Comment on lines +92 to +93
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

sed pattern may update the wrong version field in Cargo.toml.

The pattern ^version = ".*" will match the first version line in Cargo.toml, which should be the package version. However, if the file structure changes or there are commented version lines, this could update the wrong field. Consider making the pattern more specific or using a dedicated tool like cargo set-version from cargo-edit.

♻️ Alternative using toml-cli or more specific sed
-                  sed -i "s/^version = \".*\"/version = \"$VERSION_NO_V\"/" src-tauri/Cargo.toml
+                  # Update only the package version (first occurrence in [package] section)
+                  sed -i '0,/^version = ".*"/{s/^version = ".*"/version = "'"$VERSION_NO_V"'"/}' src-tauri/Cargo.toml
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Update src-tauri/Cargo.toml
sed -i "s/^version = \".*\"/version = \"$VERSION_NO_V\"/" src-tauri/Cargo.toml
# Update only the package version (first occurrence in [package] section)
sed -i '0,/^version = ".*"/{s/^version = ".*"/version = "'"$VERSION_NO_V"'"/}' src-tauri/Cargo.toml
🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 92 - 93, The sed pattern
`sed -i "s/^version = \".*\"/version = \"$VERSION_NO_V\"/" src-tauri/Cargo.toml`
is too broad and may update the wrong `version` key; narrow the update to the
package section or use a dedicated tool. Fix by replacing that single-line sed
with either a command that targets the `[package]` section (e.g., restrict the
substitution to lines after the `[package]` header) or invoke a toml-aware tool
like `cargo set-version` (from `cargo-edit`) or `toml-cli` to set the version in
src-tauri/Cargo.toml; update the workflow to run the chosen tool and remove the
broad sed invocation.


echo "Updated version files to $VERSION_NO_V"

- name: Generate Changelog
id: changelog
uses: TriPSs/conventional-changelog-action@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
skip-on-empty: 'false'
skip-commit: 'true'
skip-version-file: 'true'
skip-git-pull: 'true'
skip-tag: 'true'
git-push: 'false'
output-file: 'false'
release-count: 0
tag-prefix: 'v'
Comment on lines +97 to +110
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

TriPSs conventional-changelog-action release-count option documentation

💡 Result:

release-count is an input to TriPSs/conventional-changelog-action that controls how many past releases are kept in the generated CHANGELOG.md.

  • Meaning: “Number of releases to preserve in changelog”
  • Default: 5
  • Special value: 0 = regenerate the changelog for all releases
  • Note: It has no effect if input-file is used (because the action prepends to the existing file content instead). [1]

Example

- uses: TriPSs/conventional-changelog-action@v6
  with:
    release-count: 0

Source: TriPSs/conventional-changelog-action README (Inputs section). [1]


release-count: 0 regenerates the changelog for all releases.

Setting release-count: 0 includes changelog entries for all releases in the repository. If you want changes only since the last release, set this to 1 instead. The default value is 5, which preserves the last 5 releases.

🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 97 - 110, The workflow step
"Generate Changelog" (id: changelog) currently sets release-count: 0 which
regenerates the changelog for all releases; change the release-count value to 1
(or another desired number) to only include changes since the last release,
updating the release-count field in that action's with: block accordingly.


- name: Commit Version Bump
run: |
NEW_VERSION="${{ steps.bump.outputs.new_version }}"

git add package.json src-tauri/tauri.conf.json src-tauri/Cargo.toml
git commit -m "chore: bump version to $NEW_VERSION"
git tag "$NEW_VERSION"
git push origin HEAD:${{ github.ref_name }}
git push origin "$NEW_VERSION"

build-tauri:
runs-on: ${{ matrix.os }}
needs: version
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2022, macos-latest]

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
fetch-depth: 0

- name: Pull latest changes
run: git pull origin ${{ github.ref_name }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
Comment on lines +140 to +143
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check package.json for Node.js version requirements
if [ -f "package.json" ]; then
  echo "=== package.json engines field ==="
  jq '.engines' package.json 2>/dev/null || echo "No engines field found"
  
  echo ""
  echo "=== .nvmrc or .node-version ==="
  cat .nvmrc 2>/dev/null || cat .node-version 2>/dev/null || echo "No version file found"
fi

Repository: CircuitVerse/cv-frontend-vue

Length of output: 166


🏁 Script executed:

# Check other workflows and their Node.js versions
echo "=== All workflow files ==="
find .github/workflows -name "*.yml" -o -name "*.yaml" | head -20

echo ""
echo "=== Node versions in all workflows ==="
rg "node-version:" .github/workflows/ -A 1 -B 1

Repository: CircuitVerse/cv-frontend-vue

Length of output: 1070


Add explanatory comment for Node.js 22 usage in Tauri-Release workflow.

Node.js 22 is used intentionally in multiple CI workflows (Tauri-testing.yml has an explicit comment "Use Node.js 22"), but Tauri-Release.yml lacks this explanation. Add a similar comment to clarify why Node.js 22 is required for the release build, especially since the project targets Node.js 18 for development (as confirmed by cross-env version constraints).

🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 140 - 143, Add an inline
comment above the "Setup Node.js" step that uses actions/setup-node@v4 and
node-version: 22 (the step named "Setup Node.js") explaining why Node.js 22 is
required for the Tauri release build (e.g., compatibility with Tauri
bundling/packaging tools or native modules) and reference that development
targets Node.js 18 elsewhere; mirror the style/level of detail used in
Tauri-testing.yml's "Use Node.js 22" comment so readers understand the
intentional version divergence.


- name: Cache Node.js Dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-

- name: Install Dependencies
run: npm ci
shell: bash

- name: Setup Rust (stable)
uses: dtolnay/rust-toolchain@stable

- name: Install Linux Dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
shell: bash

- name: Install macOS Dependencies
if: matrix.os == 'macos-latest'
run: |
brew update
brew install pkg-config
shell: bash

- name: Install Windows Dependencies
if: matrix.os == 'windows-2022'
shell: powershell
run: |
choco install -y wixtoolset nsis webview2-runtime

- name: Cache Rust Dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: './src-tauri'

- name: Build Tauri App
run: npm run tauri build
shell: bash

# TODO: Add code signing steps here once certificates are obtained
# - Windows: Sign .msi and .exe files with Authenticode via SignPath
# - macOS: Sign .app bundles and .dmg with Apple Developer ID
# - Linux: Sign .deb and .AppImage with GPG
# Reference: Issue #631

- name: Upload Tauri Build Artifacts
uses: actions/upload-artifact@v4
with:
name: Tauri Build Artifacts (${{ matrix.os }})
path: |
src-tauri/target/release/bundle

create-release:
runs-on: ubuntu-latest
needs: [version, build-tauri]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.ref_name }}

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Update Repository Changelog
run: |
set -euo pipefail
CHANGELOG_FILE="CHANGELOG.md"
TEMP_CHANGELOG="$(mktemp)"

cat <<'EOF' > "$TEMP_CHANGELOG"
${{ needs.version.outputs.changelog }}
EOF

if [ -f "$CHANGELOG_FILE" ]; then
printf "\n" >> "$TEMP_CHANGELOG"
cat "$CHANGELOG_FILE" >> "$TEMP_CHANGELOG"
fi

mv "$TEMP_CHANGELOG" "$CHANGELOG_FILE"
Comment on lines +225 to +240
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Heredoc with workflow output may have issues with special characters.

The changelog output is inserted directly into a heredoc. If the changelog contains characters like EOF, backticks, or other shell special characters, this could cause parsing issues. Consider using a file-based approach or proper escaping.

♻️ Alternative using printf with proper escaping
             - name: Update Repository Changelog
               run: |
                   set -euo pipefail
                   CHANGELOG_FILE="CHANGELOG.md"
                   TEMP_CHANGELOG="$(mktemp)"
 
-                  cat <<'EOF' > "$TEMP_CHANGELOG"
-                  ${{ needs.version.outputs.changelog }}
-                  EOF
+                  # Write changelog content safely
+                  printf '%s\n' '${{ needs.version.outputs.changelog }}' > "$TEMP_CHANGELOG"
 
                   if [ -f "$CHANGELOG_FILE" ]; then
                     printf "\n" >> "$TEMP_CHANGELOG"
                     cat "$CHANGELOG_FILE" >> "$TEMP_CHANGELOG"
                   fi
 
                   mv "$TEMP_CHANGELOG" "$CHANGELOG_FILE"

Note: Even this approach may have issues. Consider writing the changelog to a file in a previous step using GitHub Actions' built-in file writing capabilities.

🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 215 - 230, The current
heredoc injecting ${{ needs.version.outputs.changelog }} into TEMP_CHANGELOG is
unsafe for special characters; replace the heredoc approach and instead write
the changelog content to the temp file using a safe file-write method (avoid
unquoted/heredoc expansion). Concretely, stop using the here-doc around
TEMP_CHANGELOG and instead write the workflow output into TEMP_CHANGELOG with a
method that preserves arbitrary content (e.g., use a single-step file write that
safely redirects the exact value of ${{ needs.version.outputs.changelog }} into
TEMP_CHANGELOG), then append CHANGELOG_FILE as before; ensure you update
references to TEMP_CHANGELOG and CHANGELOG_FILE and remove the heredoc block.


- name: Commit and Push Changelog
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail

# Pull latest changes (version job pushed new commits)
git pull origin ${{ github.ref_name }} --rebase
Comment on lines +248 to +249
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

git pull --rebase could fail if version job pushed conflicting changes.

If the version job's commit conflicts with any concurrent changes to the branch, the rebase will fail. Consider using --no-rebase with a merge strategy, or ensure the workflow has exclusive access via the concurrency group.

♻️ Alternative: use merge instead of rebase
                   # Pull latest changes (version job pushed new commits)
-                  git pull origin ${{ github.ref_name }} --rebase
+                  git pull origin ${{ github.ref_name }} --no-rebase
🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 248 - 249, The git pull
uses --rebase which can fail on conflicting commits from the version job; update
the step that runs "git pull origin ${{ github.ref_name }} --rebase" to use a
non-rebase merge strategy (remove --rebase / add --no-rebase) or alternatively
enforce exclusive workflow execution by adding a concurrency group to the
workflow; modify the command referenced ("git pull origin ${{ github.ref_name }}
--rebase") or add a workflow-level concurrency key to prevent concurrent pushes
so rebases won't conflict.


if git diff --quiet -- CHANGELOG.md; then
echo "No changelog updates to commit."
exit 0
fi

git add CHANGELOG.md
git commit -m "chore: update changelog for ${{ needs.version.outputs.new_version }}"
git push origin HEAD:${{ github.ref_name }}

- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Prepare Release Assets
run: |
mkdir -p release-assets
find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true
Comment on lines +265 to +268
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Silent failure on missing release assets.

The || true on line 268 silently ignores errors when no matching files are found. If builds fail to produce expected artifacts, this could result in an empty release without clear indication.

♻️ Add validation after find command
             - name: Prepare Release Assets
               run: |
                   mkdir -p release-assets
-                  find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true
+                  find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \;
+
+                  # Validate that we have at least some release assets
+                  if [ -z "$(ls -A release-assets 2>/dev/null)" ]; then
+                    echo "::warning::No release assets found. Check build artifacts."
+                  fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Prepare Release Assets
run: |
mkdir -p release-assets
find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true
- name: Prepare Release Assets
run: |
mkdir -p release-assets
find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \;
# Validate that we have at least some release assets
if [ -z "$(ls -A release-assets 2>/dev/null)" ]; then
echo "::warning::No release assets found. Check build artifacts."
fi
🤖 Prompt for AI Agents
In @.github/workflows/Tauri-Release.yml around lines 265 - 268, The step named
"Prepare Release Assets" currently swallows errors with the trailing "|| true"
on the find/cp command and can produce an empty release silently; remove the
silent suppression and add validation after the find/cp (reference the "find
artifacts -type f ... -exec cp {} release-assets/ \;" invocation) to check that
release-assets contains at least one artifact and fail the job with a clear
message if none were copied so the workflow surfaces missing build artifacts.


if [ -d "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos" ]; then
MACOS_BUNDLE_DIR="artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos"
cd "$MACOS_BUNDLE_DIR"
shopt -s nullglob
apps=( *.app )
if [ ${#apps[@]} -gt 0 ]; then
for app in "${apps[@]}"; do
zip -r "$GITHUB_WORKSPACE/release-assets/${app%.app}.zip" "$app"
done
fi
cd -
fi

echo "Prepared release assets:"
ls -l release-assets/

- name: Install GitHub CLI
run: |
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail

NEW_VERSION="${{ needs.version.outputs.new_version }}"
echo "Creating release: $NEW_VERSION"

CHANGELOG_NOTES_FILE="RELEASE_NOTES.md"
cat <<'EOF' > "$CHANGELOG_NOTES_FILE"
${{ needs.version.outputs.changelog }}
EOF

gh release create "$NEW_VERSION" \
--title "CircuitVerse Desktop $NEW_VERSION" \
--notes-file "$CHANGELOG_NOTES_FILE" \
release-assets/*
53 changes: 53 additions & 0 deletions .github/workflows/Tauri-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Desktop Simulator Tests

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '16 5 * * 0'

jobs:
desktop-simulator-tests:
name: Desktop Simulator Tests
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22 # Use Node.js 22

- name: Install Dependencies
run: npm install

- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

Comment on lines +28 to +33
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat .github/workflows/Tauri-testing.yml | head -50

Repository: CircuitVerse/cv-frontend-vue

Length of output: 1227


🌐 Web query:

actions-rs/toolchain deprecated 2025 GitHub Actions Rust

💡 Result:

  • actions-rs/toolchain is effectively deprecated because the repo was archived (read-only) on Oct 13, 2023. (github.com)
  • It is a JavaScript action that declares runs: using: 'node12'. (raw.githubusercontent.com)
  • GitHub Actions has been retiring old Node runtimes: Node12 → Node16 enforcement (June 14, 2023), then Node16 end-of-life in the Actions runner (Nov 12, 2024), and moving actions to Node20 by default (June 3, 2024 enforcement). This is why people started calling actions-rs/toolchain “deprecated” and seeing runtime/deprecation issues by 2025. (github.blog)

Recommended replacements (maintained):

Citations:


🌐 Web query:

dtolnay/rust-toolchain GitHub Actions recommended replacement

💡 Result:

A commonly recommended drop-in replacement is:

  • actions-rust-lang/setup-rust-toolchain@v1 — it installs Rust via rustup, supports rust-toolchain(.toml) auto-detection, and is explicitly “heavily inspired by” dtolnay/rust-toolchain. [1]

Example:

- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
  with:
    toolchain: stable        # or omit if you have rust-toolchain(.toml)
    components: clippy,rustfmt
    target: wasm32-unknown-unknown

Sources: [1] (github.com)

Citations:


Update deprecated Rust toolchain action (archived repository with unsupported Node12 runtime).

actions-rs/toolchain@v1 is archived as of October 2023 and uses node12, which GitHub Actions retired in June 2023 and removed entirely in November 2024. Workflows using this action will fail or show deprecation warnings on current runners. Replace with actions-rust-lang/setup-rust-toolchain@v1 (maintained and recommended).

🛠️ Suggested replacement
      - name: Install Rust
-       uses: actions-rs/toolchain@v1
+       uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: stable
          override: true
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Install Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
🧰 Tools
🪛 actionlint (1.7.10)

29-29: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In @.github/workflows/Tauri-testing.yml around lines 28 - 33, The workflow step
using the archived action actions-rs/toolchain@v1 must be replaced with the
maintained actions-rust-lang/setup-rust-toolchain@v1; edit the Install Rust step
(the step that currently uses actions-rs/toolchain@v1) to use
actions-rust-lang/setup-rust-toolchain@v1 and copy over the toolchain input
(e.g., toolchain: stable); remove or adapt any deprecated inputs
(confirm/replace override: true with the new action's equivalent if needed) and
ensure the step name stays descriptive (e.g., "Install Rust") so CI no longer
depends on the archived Node12-based action.

- name: Install Tauri CLI
run: cargo install tauri-cli

- name: Debug Environment
run: |
echo "Node.js version: $(node -v)"
echo "npm version: $(npm -v)"
echo "Rust version: $(rustc --version)"
echo "Tauri CLI version: $(tauri --version)"

- name: Start Mock API
run: |
npm install -g json-server
json-server --watch mock-api.json --port 3000 &

- name: Build Tauri App using build-desktop.js
run: |
node build-desktop.js


1 change: 1 addition & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,4 @@ jobs:
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

1 change: 1 addition & 0 deletions .github/workflows/eslint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@ jobs:
with:
sarif_file: eslint-results.sarif
wait-for-processing: true

Loading
Loading