建站优化易下拉系统更改wordpress代码

张小明 2026/1/8 13:01:46
建站优化易下拉系统,更改wordpress代码,科技设计网站有哪些,企业管理咨询服务包括哪些内容开源 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进行投诉反馈,一经查实,立即删除!

山东网站方案上海网站建设哪个好

5分钟快速上手Gobot框架:机器人编程入门指南 【免费下载链接】gobot Golang framework for robotics, drones, and the Internet of Things (IoT) 项目地址: https://gitcode.com/gh_mirrors/go/gobot 想要探索机器人编程和物联网开发的奇妙世界吗&#xff1…

张小明 2026/1/6 22:03:18 网站建设

网站建设费用高低有什么区别wordpress 怎么改密码

PDFMathTranslate作为专业的PDF文档翻译工具,其核心优势在于能够完整保留原始文档的排版格式,特别适合处理包含数学公式、图表等复杂元素的学术论文。通过本地大模型部署,用户可以在确保数据安全的前提下,获得高质量的翻译效果。本…

张小明 2026/1/7 12:54:01 网站建设

广州富邦物流网站建设怎么开发公众号平台

1. 为什么这个毕设项目值得你 pick ?毕设小白的福音!基于Java的安全生产执法监管智慧管理系统的设计与实现。该系统主要功能模块包括企业管理、生产设施管理、员工培训管理等九个方面,创新性地采用了SpringMVC开发框架和MySQL数据库进行高效率的数据管理…

张小明 2026/1/7 14:43:01 网站建设

做网站什么主题好国外模板wordpress

第一章:Open-AutoGLM 任务中断恢复机制概述 在大规模语言模型自动化任务执行过程中,任务中断是常见且影响效率的关键问题。Open-AutoGLM 引入了一套完整的任务中断恢复机制,旨在保障长时间运行任务的可靠性与连续性。该机制通过状态快照、检查…

张小明 2026/1/8 0:24:21 网站建设