苗木网站什么做网站电子商务平台建设

张小明 2026/3/2 21:41:06
苗木网站什么做,网站电子商务平台建设,网站关键词如何选取,河北固安县网站建设开源 Electron 应用 GitHub Actions 自动化部署与升级指南 一、前言 本文详细介绍如何利用 GitHub Actions 实现 Electron 应用的自动化构建、发布及通过 UpgradeLink 实现应用自动更新功能。通过本指南#xff0c;你将学会配置 GitHub Actions 工作流#xff0c;完成从代码…开源 Electron 应用 GitHub Actions 自动化部署与升级指南一、前言本文详细介绍如何利用 GitHub Actions 实现 Electron 应用的自动化构建、发布及通过 UpgradeLink 实现应用自动更新功能。通过本指南你将学会配置GitHub Actions 工作流完成从代码提交到应用更新的全自动化流程。二、核心工具介绍1. UpgradeLink GitHub ActionUpgradeLink 提供的 GitHub Action 插件用于将 Electron 应用生成的更新文件上传至 UpgradeLink 服务器UpgradeLink 读取json文件中应用文件的地址保存文件自动实现应用版本文件的创建和对应升级策略的创建。项目地址2.已经跑完全部流程的示例项目流程的示例项目示例项目 electron-demo三、工作流说明工作流分为三个主要作业electron-build构建并发布 Electron 应用打包不同端与架构的安装包跨平台构建同时支持 macOS、Linux 和 Windows版本号提取从 Electron 构建输出中提取应用版本号electron-release根据electron-build构建输出的包进行 Releases 版本发布发布管理自动创建 GitHub Release 并上传应用安装包输出参数输出应用版本号用于后续作业upgradeLink-upload将更新信息同步到 UpgradeLink依赖关系等待 上面两个作业 作业完成版本感知通过输出参数获取应用版本号API 调用使用 UpgradeLink Action 将对应的安装包上传至升级服务器四、接入步骤详解1. 前期准备首先需要确保已创建 GitHub 仓库并上传 Electron 应用代码拥有 UpgradeLink 平台的账号并获取以下凭证ACCESS_KEY访问密钥 密钥信息ELECTRON_KEY应用唯一标识 应用信息在 UpgradeLink平台的 electron 应用配置中配置上 github 仓库的地址。2. 配置 GitHub Secrets在 GitHub 仓库的 Settings Security Secrets and variables Actions 中添加以下加密环境变量Secret 名称说明UPGRADE_LINK_ACCESS_KEYUpgradeLink 平台提供的访问密钥用于 API 调用身份验证UPGRADE_LINK_ELECTRON_KEYUpgradeLink 平台为你的 Electron 应用分配的唯一标识3. 编辑 electron-demo/.github/workflows/main.yml github-Action文件根据自己的需要进行调整。name: publish on: push: branches: - main tags: - *.*.* jobs: electron-build: outputs: appVersion: ${{ steps.extract-version.outputs.appVersion }} permissions: contents: write strategy: fail-fast: false matrix: include: # Linux 平台 - platform: ubuntu-22.04 target: x86_64-unknown-linux-gnu artifact-name: ubuntu-x86_64 arch-suffix: x64 # 直接定义完整的构建命令包含通道信息 build-command: yarn electron-builder --linux --x64 --publish always --config.publish.channellatest-linux - platform: ubuntu-22.04 target: aarch64-unknown-linux-gnu artifact-name: ubuntu-aarch64 arch-suffix: arm64 build-command: yarn electron-builder --linux --arm64 --publish always --config.publish.channellatest-linux # macOS 平台 - platform: macos-latest target: aarch64-apple-darwin artifact-name: macos-arm64 arch-suffix: arm64 build-command: yarn electron-builder --mac --arm64 --publish always --config.publish.channellatest-mac - platform: macos-latest target: x86_64-apple-darwin artifact-name: macos-x64 arch-suffix: x64 build-command: yarn electron-builder --mac --x64 --publish always --config.publish.channellatest-mac # Windows 平台 - platform: windows-latest target: x86_64-pc-windows-msvc artifact-name: windows-x64 arch-suffix: x64 build-command: yarn electron-builder --win --x64 --publish always --config.publish.channellatest-win runs-on: ${{ matrix.platform }} steps: - uses: actions/checkoutv4 - name: setup node uses: actions/setup-nodev4 with: node-version: lts/* cache: yarn - name: Install dependencies with yarn run: yarn install - name: List installed dependencies run: yarn list - name: install dependencies (ubuntu only) if: startsWith(matrix.platform, ubuntu) run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf xdg-utils - name: install dependencies (macos only) if: matrix.platform macos-latest run: | brew install automake autoconf libtool - name: install frontend dependencies run: yarn install - name: Install rimraf run: yarn add rimraf --dev - name: Build Electron App # 直接执行矩阵中定义的完整构建命令 run: ${{ matrix.build-command }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Cleanup Artifacts for Linux if: startsWith(matrix.platform, ubuntu) run: | mkdir -p dist-temp find dist -maxdepth 1 -type f \( -name *.AppImage -o -name *.yml -o -name *.zip \) -exec cp {} dist-temp/ \; rm -rf dist mv dist-temp dist echo 保留的发布文件 ls -la dist - name: Cleanup Artifacts for macOS if: matrix.platform macos-latest run: | mkdir -p dist-temp find dist -maxdepth 1 -type f \( -name *.dmg -o -name *.pkg -o -name *.zip -o -name *.yml \) -exec cp {} dist-temp/ \; rm -rf dist mv dist-temp dist echo 保留的发布文件 ls -la dist - name: Cleanup Artifacts for Windows if: matrix.platform windows-latest run: | New-Item -ItemType Directory -Path dist-temp -Force | Out-Null Get-ChildItem -Path dist -File | Where-Object { $_.Name -like *.exe -or $_.Name -like *.msi -or $_.Name -like *.zip -or $_.Name -like *.yml } | Copy-Item -Destination dist-temp/ Remove-Item -Path dist -Recurse -Force Rename-Item -Path dist-temp -NewName dist Write-Host 保留的发布文件 Get-ChildItem -Path dist - name: Rename files with architecture suffix (Linux/macOS) if: startsWith(matrix.platform, ubuntu) || matrix.platform macos-latest run: | cd dist ARCH_SUFFIX${{ matrix.arch-suffix }} if [ $ARCH_SUFFIX ! x64 ] [ $ARCH_SUFFIX ! arm64 ]; then echo 错误: 架构后缀不正确 - $ARCH_SUFFIX exit 1 fi # 先处理重复平台标识 for file in *.yml; do if [ -f $file ]; then # 固定替换 -linux-linux 为 -linux if [[ $file *-linux-linux* ]]; then new_file${file//-linux-linux/-linux} mv $file $new_file echo 替换重复标识: $file - $new_file file$new_file fi # 固定替换 -mac-mac 为 -mac if [[ $file *-mac-mac* ]]; then new_file${file//-mac-mac/-mac} mv $file $new_file echo 替换重复标识: $file - $new_file file$new_file fi # 固定替换 x86_64-x64 为 -x64 if [[ $file *-x86_64-x64* ]]; then new_file${file//x86_64-x64/-x64} mv $file $new_file echo 替换重复标识: $file - $new_file file$new_file fi # 处理架构后缀 if [[ $file ! *-$ARCH_SUFFIX.* ]]; then filename${file%.*} extension${file#$filename} new_filename${filename}-${ARCH_SUFFIX}${extension} mv $file $new_filename echo 添加架构后缀: $file - $new_filename else echo 文件已处理完成: $file fi fi done echo 最终文件列表: ls -l - name: Rename files with architecture suffix (Windows) if: matrix.platform windows-latest run: | cd dist $ARCH_SUFFIX ${{ matrix.arch-suffix }} if ($ARCH_SUFFIX -ne x64 -and $ARCH_SUFFIX -ne arm64) { Write-Error 错误: 架构后缀不正确 - $ARCH_SUFFIX exit 1 } Get-ChildItem -File | ForEach-Object { $file $_ if ($file.Name -match -$ARCH_SUFFIX\.[^.]$) { Write-Host 文件已包含架构后缀: $($file.Name) } else { $filename $file.BaseName $extension $file.Extension $new_filename $filename-$ARCH_SUFFIX$extension Rename-Item -Path $file.FullName -NewName $new_filename Write-Host 重命名: $($file.Name) - $new_filename } } Write-Host 重命名后的文件: Get-ChildItem -File - name: Extract version id: extract-version run: | # 优先从标签获取版本号 if [[ ${{ github.ref }} refs/tags/* ]]; then VERSION${{ github.ref_name }} else # 如果不是标签推送从package.json读取版本号 VERSION$(node -p require(./package.json).version) # 或者使用固定的默认值 # VERSIONdev-$(date %Y%m%d) fi echo appVersion$VERSION $GITHUB_OUTPUT echo Extracted version: $VERSION shell: bash - name: Upload artifacts uses: actions/upload-artifactv4.0.0 with: name: ${{ matrix.artifact-name }} path: dist/* if-no-files-found: error electron-release: needs: electron-build runs-on: ubuntu-22.04 permissions: contents: write steps: - name: Download all artifacts uses: actions/download-artifactv4 with: path: artifacts merge-multiple: false - name: Verify artifact files run: | echo 下载的文件结构: tree artifacts if [ -z $(find artifacts -type f) ]; then echo 错误: 没有找到任何artifact文件 exit 1 fi - name: Prepare release files run: | mkdir -p release-files find artifacts -type f -exec cp {} release-files/ \; echo 准备发布的文件: ls -l release-files - name: Create GitHub Release uses: softprops/action-gh-releasev1 with: tag_name: ${{ needs.electron-build.outputs.appVersion }} name: Release ${{ needs.electron-build.outputs.appVersion }} files: release-files/* draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}4. 引入 upgradelink-action模块。替换对应的信息upgradeLink-upload: # 同时依赖 electron-build 和 electron-release确保能访问 electron-build 的输出 needs: [ electron-build, electron-release ] permissions: contents: write runs-on: ubuntu-latest steps: - name: Send a request to UpgradeLink uses: toolsetlink/upgradelink-action-electronv1.0.1 with: source-url: https://github.com/toolsetlink/electron-demo/releases/download/${{ needs.electron-build.outputs.appVersion }} access-key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }} # ACCESS_KEY 密钥key electron-key: ${{ secrets.UPGRADE_LINK_ELECTRON_KEY }} # ELECTRON_KEY electron 应用唯一标识 github-token: ${{ secrets.GITHUB_TOKEN }} version: ${{ needs.electron-build.outputs.appVersion }} prompt-upgrade-content: 提示升级内容五、常见问题与解决方案1. 签名问题macOS应用程序必须签名才能使自动更新工作。 参考文档2. 构建失败排查检查 GitHub Actions 日志查看具体错误信息确认所有依赖已正确安装特别是 Linux 平台的系统依赖确保 Node.js 版本兼容3. UpgradeLink 集成问题检查 UpgradeLink 控制台中的应用标识是否与配置一致确认 GitHub Releases 中是否生成了正确的 安装包 文件六、总结通过以上配置你可以实现 Electron 应用的全自动化构建、发布和更新流程。每当代码推送到指定分支时GitHub Actions 将自动完成以下工作检测代码变更在多平台环境中构建 Electron 应用创建 GitHub Release 并上传安装包提取应用版本号将更新信息同步到 UpgradeLink 平台最终用户将通过 UpgradeLink 收到应用更新通知这种自动化流程大大提高了开发效率减少了手动操作错误让开发者可以更专注于应用功能开发。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站投诉平台中国招标建设信息网站

STM8单片机学习日志 – 初步接触 | 创建日期:2025/12/13 STM8单片机介绍 STM8不同于STM32用的是ARM-Cortex-M内核,它是意法半导体(ST)公司官方设计的高性能8位8核的单片机,所以开发方式和STM32的有所不同

张小明 2026/1/11 9:51:31 网站建设

有了代码如何建设网站女生学软件工程很难吗

第一章:Docker Compose 中 Agentic Apps 的定义与配置概述在现代云原生应用开发中,Agentic Apps 指具备自主行为能力、可感知环境并作出响应的分布式服务组件。这类应用通常由多个协同工作的微服务构成,每个服务都封装了特定的业务逻辑&#…

张小明 2026/1/11 19:31:59 网站建设

Wordpress上传媒体错误seo优化实训报告

Ant Design Vue 是基于 Ant Design 设计体系的 Vue UI 组件库,专为中后台管理系统提供丰富的组件和工具。 推荐使用 Ant Design Vue 4.2.6 或更高,该版本修复了 Select 组件的虚拟滚动内存泄漏问题。‌‌核心组件的使用‌‌表单组件‌:避免在…

张小明 2026/1/8 16:18:11 网站建设

自己公司网站维护邯郸建立网站费用

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 文章目录 基于Mamba注意力机制的YOLOv11改进方案:MLLA模块实现目标检测性能突破 Mamba注意力机制原理分析 YOLOv11集成MLLA模块的详细实现 环境配置与代码结构准备…

张小明 2026/1/7 12:56:09 网站建设

赣州培训网站开发泰安网络营销公司

作为后端开发者,对接微信支付是绕不开的核心需求。本文将从微信开放平台配置、项目环境搭建、JSAPI 支付、H5 支付、支付回调处理五个核心模块,手把手教你完成微信支付全流程对接,全程附代码 截图,小白也能独立落地! …

张小明 2026/1/11 22:55:27 网站建设

小网站asp好还是php好开发施工建设网站审核

LobeChat是否支持中文大模型?实测通义千问、百川、ChatGLM接入效果 在智能对话系统快速演进的今天,一个现实问题摆在许多国内开发者面前:如何为国产大模型配一个“好用”的前端?不少团队自己训练或部署了中文大模型,比…

张小明 2026/1/7 6:43:53 网站建设