GitHub Actions 自動(dòng)化運(yùn)維實(shí)戰(zhàn)指南
1. 引言在現(xiàn)代 DevOps 實(shí)踐中GitHub Actions 已成為最流行的 CI/CD 平臺(tái)之一。它不僅能夠自動(dòng)化構(gòu)建、測(cè)試和部署流程還能承擔(dān)大量運(yùn)維任務(wù)如自動(dòng)清理資源、監(jiān)控倉(cāng)庫(kù)狀態(tài)、定時(shí)執(zhí)行腳本、自動(dòng)發(fā)布版本等。本文將從實(shí)戰(zhàn)角度出發(fā)通過(guò)完整的代碼示例帶你掌握 GitHub Actions 在自動(dòng)化運(yùn)維中的核心用法。2. 基礎(chǔ)概念與準(zhǔn)備工作2.1 什么是 GitHub ActionsGitHub Actions 是 GitHub 提供的持續(xù)集成與持續(xù)交付CI/CD平臺(tái)允許你在倉(cāng)庫(kù)中定義工作流Workflow自動(dòng)響應(yīng)代碼推送、Issue 創(chuàng)建、PR 合并等事件或按計(jì)劃定時(shí)執(zhí)行任務(wù)。2.2 核心概念Workflow工作流一個(gè)可配置的自動(dòng)化流程定義在.github/workflows/目錄下的 YAML 文件中。Job作業(yè)工作流中的一個(gè)任務(wù)單元多個(gè) Job 可以并行或串行執(zhí)行。Step步驟Job 中的單個(gè)操作可以是運(yùn)行命令、執(zhí)行腳本或調(diào)用 Action。Action動(dòng)作可復(fù)用的自定義應(yīng)用可以從 GitHub Marketplace 獲取或自己編寫(xiě)。Runner運(yùn)行器執(zhí)行工作流的服務(wù)器可以是 GitHub 托管的Ubuntu/Windows/macOS或自托管的。2.3 準(zhǔn)備工作開(kāi)始之前請(qǐng)確保擁有一個(gè) GitHub 賬號(hào)并創(chuàng)建了目標(biāo)倉(cāng)庫(kù)。倉(cāng)庫(kù)中已包含需要運(yùn)維的項(xiàng)目代碼。了解基本的 YAML 語(yǔ)法。可選準(zhǔn)備好云服務(wù)商的 API Token 或 SSH 密鑰用于遠(yuǎn)程操作。3. 第一個(gè)自動(dòng)化運(yùn)維工作流3.1 創(chuàng)建基礎(chǔ)工作流文件在倉(cāng)庫(kù)根目錄創(chuàng)建.github/workflows/ops-demo.yml文件name: 自動(dòng)化運(yùn)維演示 on: push: branches: [ main ] schedule: - cron: 0 2 * * * # 每天 UTC 2:00 執(zhí)行 workflow_dispatch: # 支持手動(dòng)觸發(fā) jobs: health-check: runs-on: ubuntu-latest steps: - name: 檢出代碼 uses: actions/checkoutv4 - name: 檢查系統(tǒng)狀態(tài) run: | echo 磁盤(pán)使用情況 df -h echo 內(nèi)存使用情況 free -h echo 運(yùn)行中的進(jìn)程 ps aux --sort-%mem | head -10 name: 檢查網(wǎng)絡(luò)連通性 run: | echo 檢查 GitHub 連通性... curl -s -o /dev/null -w %{http_code} https://api.github.com echo echo 檢查外部服務(wù)... curl -s -o /dev/null -w %{http_code} https://example.com3.2 觸發(fā)與查看結(jié)果將文件推送到main分支后進(jìn)入倉(cāng)庫(kù)的Actions標(biāo)簽頁(yè)即可看到工作流運(yùn)行。每次推送會(huì)自動(dòng)觸發(fā)同時(shí)每天凌晨 2 點(diǎn)也會(huì)自動(dòng)執(zhí)行一次健康檢查。4. 定時(shí)任務(wù)自動(dòng)清理與備份4.1 自動(dòng)清理過(guò)期 ArtifactsGitHub Actions 生成的 Artifacts 會(huì)占用存儲(chǔ)空間以下工作流定期清理 7 天前的產(chǎn)物name: 清理過(guò)期 Artifacts on: schedule: - cron: 0 6 * * 0 # 每周日 UTC 6:00 workflow_dispatch: jobs: cleanup: runs-on: ubuntu-latest steps: - name: 獲取并刪除過(guò)期 Artifacts env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} run: | # 獲取所有 Artifacts artifacts$(gh api /repos/$REPO/actions/artifacts --jq .artifacts[]) # 計(jì)算 7 天前的時(shí)間戳 cutoff$(date -d 7 days ago %s) echo 開(kāi)始清理 7 天前的 Artifacts... echo $artifacts | while read -r artifact; do created_at$(echo $artifact | jq -r .created_at) created_ts$(date -d $created_at %s) name$(echo $artifact | jq -r .name) id$(echo $artifact | jq -r .id) if [ $created_ts -lt $cutoff ]; then echo 刪除過(guò)期 Artifact: $name (ID: $id) gh api -X DELETE /repos/$REPO/actions/artifacts/$id fi done echo 清理完成/code/pre 4.2 自動(dòng)備份倉(cāng)庫(kù)到外部存儲(chǔ) 將倉(cāng)庫(kù)完整備份到 AWS S3 或阿里云 OSS name: 倉(cāng)庫(kù)自動(dòng)備份 on: schedule: cron: 0 4 * * * # 每天 UTC 4:00 workflow_dispatch: jobs: backup-to-s3: runs-on: ubuntu-latest steps: name: 檢出完整倉(cāng)庫(kù)含所有分支和標(biāo)簽 uses: actions/checkoutv4 with: fetch-depth: 0 # 拉取完整歷史 name: 打包倉(cāng)庫(kù) run: | TIMESTAMP$(date %Y%m%d_%H%M%S) REPO_NAME$(echo ${{ github.repository }} | tr / ) ARCHIVE_NAME${REPO_NAME}${TIMESTAMP}.tar.gz tar -czf $ARCHIVE_NAME --exclude.git . echo ARCHIVE_NAME$ARCHIVE_NAME $GITHUB_ENV echo 備份包大小: $(du -h $ARCHIVE_NAME | cut -f1) name: 上傳到 S3 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: us-east-1 S3_BUCKET: ${{ secrets.S3_BACKUP_BUCKET }} run: | aws s3 cp ${{ env.ARCHIVE_NAME }} s3://$S3_BUCKET/backups/${{ env.ARCHIVE_NAME }} echo 備份已上傳到 S3: s3://$S3_BUCKET/backups/${{ env.ARCHIVE_NAME }} name: 清理本地備份文件 run: rm -f ${{ env.ARCHIVE_NAME }} 自動(dòng)發(fā)布版本與生成 Release Notes 5.1 語(yǔ)義化版本自動(dòng)發(fā)布 當(dāng)推送符合語(yǔ)義化版本規(guī)范的標(biāo)簽時(shí)自動(dòng)創(chuàng)建 Release 并生成變更日志 name: 自動(dòng)發(fā)布版本 on: push: tags: v* # 匹配 v1.0.0、v2.1.3 等標(biāo)簽 jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: name: 檢出代碼 uses: actions/checkoutv4 with: fetch-depth: 0 name: 生成變更日志 id: changelog run: | 獲取上一個(gè)標(biāo)簽 PREV_TAG$(git tag --sort-creatordate | sed -n 2p) if [ -z $PREV_TAG ]; then echo 這是第一個(gè)版本無(wú)歷史對(duì)比 CHANGELOG## 初始版本\n\n- 首次發(fā)布 else echo 對(duì)比范圍: $PREV_TAG - ${{ github.ref_name }} CHANGELOG$(git log $PREV_TAG..${{ github.ref_name }} --prettyformat:- %s (%h) --no-merges) fi 將多行內(nèi)容寫(xiě)入環(huán)境變量 echo CHANGELOGlt;lt;EOF gt;gt; $GITHUB_ENV echo -e $CHANGELOG gt;gt; $GITHUB_ENV echo EOF gt;gt; $GITHUB_ENV name: 創(chuàng)建 Release uses: softprops/action-gh-releasev2 with: name: Release ${{ github.ref_name }} body: | 版本 ${{ github.ref_name }} 變更內(nèi)容 ${{ env.CHANGELOG }} 安裝說(shuō)明 請(qǐng)參考項(xiàng)目文檔獲取最新版本。 draft: false prerelease: false generate_release_notes: false 6. 自動(dòng) Issue 與 PR 管理 6.1 自動(dòng)標(biāo)記和分類 Issue name: Issue 自動(dòng)分類 on: issues: types: [opened] jobs: triage: runs-on: ubuntu-latest permissions: issues: write steps: name: 根據(jù)標(biāo)題添加標(biāo)簽 uses: actions/github-scriptv7 with: script: | const title context.payload.issue.title.toLowerCase(); const labels []; if (title.includes(bug) || title.includes(錯(cuò)誤) || title.includes(故障)) { labels.push(bug); } if (title.includes(feature) || title.includes(功能) || title.includes(需求)) { labels.push(enhancement); } if (title.includes(doc) || title.includes(文檔)) { labels.push(documentation); } if (title.includes(urgent) || title.includes(緊急) || title.includes(critical)) { labels.push(urgent); } if (labels.length gt; 0) { await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.issue.number, labels: labels }); } name: 自動(dòng)回復(fù)新 Issue uses: actions/github-scriptv7 with: script: | const body 感謝你提交 Issue 自動(dòng)回復(fù) 你的問(wèn)題已收到維護(hù)團(tuán)隊(duì)會(huì)盡快處理。 請(qǐng)確認(rèn)以下信息 是否已搜索過(guò)類似 Issue 是否提供了復(fù)現(xiàn)步驟 是否附帶了相關(guān)日志或截圖 amp;gt; 這是一個(gè)自動(dòng)回復(fù)請(qǐng)勿回復(fù)此消息。; await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.issue.number, body: body });/code/pre 6.2 自動(dòng)關(guān)閉過(guò)期 Issue name: 關(guān)閉過(guò)期 Issue on: schedule: cron: 0 0 * * # 每天 UTC 0:00 workflow_dispatch: jobs: stale: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: uses: actions/stalev9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 此 Issue 已超過(guò) 30 天無(wú)活動(dòng)將被標(biāo)記為過(guò)期。如果仍需處理請(qǐng)回復(fù)。 stale-pr-message: 此 PR 已超過(guò) 30 天無(wú)活動(dòng)將被標(biāo)記為過(guò)期。 close-issue-message: 由于長(zhǎng)期無(wú)活動(dòng)此 Issue 已被自動(dòng)關(guān)閉。 close-pr-message: 由于長(zhǎng)期無(wú)活動(dòng)此 PR 已被自動(dòng)關(guān)閉。 days-before-stale: 30 days-before-close: 7 stale-issue-label: stale stale-pr-label: stale exempt-issue-labels: pinned,security exempt-pr-labels: pinned,security 安全掃描與合規(guī)檢查 7.1 依賴安全掃描 name: 安全掃描 on: push: branches: [ main, develop ] pull_request: branches: [ main ] schedule: cron: 0 8 * * 1 # 每周一 UTC 8:00 jobs: security-scan: runs-on: ubuntu-latest steps: uses: actions/checkoutv4 name: 運(yùn)行 Trivy 漏洞掃描 uses: aquasecurity/trivy-actionmaster with: scan-type: fs scan-ref: . format: sarif output: trivy-results.sarif severity: CRITICAL,HIGH name: 上傳掃描結(jié)果到 GitHub Security uses: github/codeql-action/upload-sarifv3 with: sarif_file: trivy-results.sarif name: 檢查 Secrets 泄露 uses: gitleaks/gitleaks-actionv2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} name: 運(yùn)行 Dependency Check uses: dependency-check/Dependency-Check_Actionmain with: project: my-project path: . format: HTML out: reports env: JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.9-9/x64 多環(huán)境部署自動(dòng)化 8.1 環(huán)境審批與自動(dòng)部署 name: 多環(huán)境部署 on: push: branches: develop staging main jobs: test: runs-on: ubuntu-latest steps: uses: actions/checkoutv4 name: 運(yùn)行測(cè)試 run: | echo 運(yùn)行單元測(cè)試... npm test 或 mvn test 等 echo 所有測(cè)試通過(guò) deploy-dev: needs: test if: github.ref refs/heads/develop runs-on: ubuntu-latest environment: name: development url: https://dev.example.com steps: name: 部署到開(kāi)發(fā)環(huán)境 run: | echo 部署到開(kāi)發(fā)服務(wù)器... scp 或 rsync 或 kubectl 命令 echo 部署完成: https://dev.example.com deploy-staging: needs: test if: github.ref refs/heads/staging runs-on: ubuntu-latest environment: name: staging url: https://staging.example.com steps: name: 部署到預(yù)發(fā)布環(huán)境 run: | echo 部署到預(yù)發(fā)布服務(wù)器... echo 部署完成: https://staging.example.com deploy-production: needs: test if: github.ref refs/heads/main runs-on: ubuntu-latest environment: name: production url: https://example.com steps: name: 等待人工審批 uses: trstringer/manual-approvalv1 with: secret: ${{ secrets.GITHUB_TOKEN }} approvers: admin-team minimum-approvals: 2 issue-title: 生產(chǎn)環(huán)境部署審批請(qǐng)求 name: 部署到生產(chǎn)環(huán)境 run: | echo 部署到生產(chǎn)服務(wù)器... echo 部署完成: https://example.com name: 健康檢查 run: | sleep 30 STATUS$(curl -s -o /dev/null -w %{http_code} https://example.com/health) if [ $STATUS ! 200 ]; then echo 健康檢查失敗 exit 1 fi echo 健康檢查通過(guò) 監(jiān)控與告警 9.1 工作流運(yùn)行狀態(tài)監(jiān)控 name: 工作流運(yùn)行監(jiān)控 on: workflow_run: workflows: [] types: completed jobs: notify-on-failure: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion failure }} steps: name: 發(fā)送失敗通知到釘釘 env: DINGTALK_WEBHOOK: ${{ secrets.DINGTALK_WEBHOOK }} run: | WORKFLOW${{ github.event.workflow_run.name }} BRANCH${{ github.event.workflow_run.head_branch }} URL${{ github.event.workflow_run.html_url }} MESSAGE{msgtype:markdown,markdown:{title:工作流運(yùn)行失敗,text:### ?? 工作流運(yùn)行失敗\n\n工作流: $WORKFLOW\n分支: $BRANCH\n倉(cāng)庫(kù): ${{ github.repository }}\n詳情: 查看運(yùn)行日志\n\n請(qǐng)相關(guān)同事及時(shí)處理}} curl -s -X POST -H Content-Type: application/json -d $MESSAGE $DINGTALK_WEBHOOK name: 發(fā)送失敗通知到 Slack uses: slackapi/slack-github-actionv1.24.0 with: payload: | { channel: #ops-alerts, username: GitHub Actions Bot, icon_emoji: :robot_face:, text: ?? 工作流 ${{ github.event.workflow_run.name }} 運(yùn)行失敗\n倉(cāng)庫(kù): ${{ github.repository }}\n分支: ${{ github.event.workflow_run.head_branch }}\n查看詳情: ${{ github.event.workflow_run.html_url }} } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} 最佳實(shí)踐與優(yōu)化建議 10.1 性能優(yōu)化 緩存依賴使用 actions/cache 緩存 npm、Maven、pip 等依賴包減少重復(fù)下載。 矩陣構(gòu)建使用 strategy.matrix 并行測(cè)試多個(gè)版本或平臺(tái)。 條件執(zhí)行利用 if 條件跳過(guò)不必要的步驟。 Job 并行化將無(wú)依賴的 Job 設(shè)置為并行執(zhí)行。 10.2 安全最佳實(shí)踐 最小權(quán)限原則為 GITHUB_TOKEN 設(shè)置最小必要權(quán)限。 Secrets 管理敏感信息使用 GitHub Secrets 存儲(chǔ)不要在 YAML 中硬編碼。 第三方 Action 審查使用前檢查 Action 源碼優(yōu)先使用官方或經(jīng)過(guò)驗(yàn)證的 Action。 環(huán)境隔離為不同環(huán)境dev/staging/prod配置獨(dú)立的 Environment 和 Secrets。 10.3 可維護(hù)性建議 復(fù)用工作流將通用步驟抽取為可復(fù)用的 Composite Action 或 Reusable Workflow。 命名規(guī)范工作流、Job、Step 使用有意義的名稱便于排查問(wèn)題。 日志輸出在關(guān)鍵步驟添加詳細(xì)的日志輸出方便調(diào)試。 版本鎖定使用 Action 的精確版本號(hào)如 v4.1.0而非大版本如 v4避免意外更新導(dǎo)致兼容性問(wèn)題。 總結(jié) 本文從實(shí)戰(zhàn)角度出發(fā)詳細(xì)介紹了 GitHub Actions 在自動(dòng)化運(yùn)維中的多種應(yīng)用場(chǎng)景包括 基礎(chǔ)健康檢查與定時(shí)任務(wù) 自動(dòng)清理與備份 版本發(fā)布與 Release Notes 生成 Issue 與 PR 自動(dòng)管理 安全掃描與合規(guī)檢查 多環(huán)境部署與審批流程 監(jiān)控告警集成 通過(guò)這些實(shí)戰(zhàn)代碼示例你可以快速搭建起一套完整的自動(dòng)化運(yùn)維體系。建議先從簡(jiǎn)單的健康檢查工作流開(kāi)始逐步增加更復(fù)雜的運(yùn)維任務(wù)最終實(shí)現(xiàn)全面的自動(dòng)化運(yùn)維覆蓋。

相關(guān)新聞

無(wú)人機(jī)飛手在沈陽(yáng)沒(méi)活可干?:避開(kāi)飛手內(nèi)卷,搶占無(wú)人機(jī)維修技術(shù)新賽道

無(wú)人機(jī)飛手在沈陽(yáng)沒(méi)活可干?:避開(kāi)飛手內(nèi)卷,搶占無(wú)人機(jī)維修技術(shù)新賽道

最近和不少沈陽(yáng)玩無(wú)人機(jī)、考飛行執(zhí)照的年輕人聊天,大家都在吐槽航拍、短途巡檢的單子越來(lái)越難接,同行太多壓低報(bào)價(jià),想靠單純飛機(jī)器穩(wěn)定增收并不容易。但很少有人留意到低空產(chǎn)業(yè)里一塊人才缺口巨大的藍(lán)海——無(wú)人機(jī)裝調(diào)與維修。如今市面上幾百…

2026/8/1 15:57:29 閱讀更多
Spring AI工具已經(jīng)調(diào)用成功,為什么最終回答仍為空?返回值、循環(huán)與上下文完整排查

Spring AI工具已經(jīng)調(diào)用成功,為什么最終回答仍為空?返回值、循環(huán)與上下文完整排查

文章摘要 有些Spring AI項(xiàng)目可以在日志中看到工具已經(jīng)被調(diào)用,數(shù)據(jù)庫(kù)查詢或HTTP請(qǐng)求也成功執(zhí)行,但客戶端最終收到空字符串、模型重復(fù)調(diào)用同一工具,或者回答完全沒(méi)有使用工具結(jié)果。這類問(wèn)題與“模型沒(méi)有選擇工具”不同,通常發(fā)生在工…

2026/8/1 3:04:45 閱讀更多
麒麟Linux系統(tǒng)安裝配置MongoDB 6.0全攻略:從倉(cāng)庫(kù)適配到安全部署

麒麟Linux系統(tǒng)安裝配置MongoDB 6.0全攻略:從倉(cāng)庫(kù)適配到安全部署

1. 項(xiàng)目緣起:為什么要在麒麟Linux上折騰MongoDB?最近接手了一個(gè)新項(xiàng)目,后端數(shù)據(jù)模型變動(dòng)頻繁,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在頻繁修改表結(jié)構(gòu)時(shí)顯得有點(diǎn)力不從心。團(tuán)隊(duì)討論后,決定引入文檔型數(shù)據(jù)庫(kù)MongoDB來(lái)應(yīng)對(duì)這種靈活多變的場(chǎng)…

2026/7/31 17:45:52 閱讀更多
Unity游戲開(kāi)發(fā)中MVC框架的實(shí)踐指南:從理論到代碼實(shí)現(xiàn)

Unity游戲開(kāi)發(fā)中MVC框架的實(shí)踐指南:從理論到代碼實(shí)現(xiàn)

1. 項(xiàng)目概述:為什么Unity開(kāi)發(fā)者需要關(guān)注MVC? 如果你在Unity社區(qū)里混跡過(guò)一段時(shí)間,或者面試過(guò)一些Unity相關(guān)的崗位,大概率會(huì)聽(tīng)到過(guò)“MVC框架”這個(gè)詞。它就像一個(gè)傳說(shuō)中的武林秘籍,人人都說(shuō)好,但真正能把它在…

2026/8/2 12:25:40 閱讀更多
《深入理解Java虛擬機(jī)》第一章 OpenJDK12環(huán)境搭建-MacOS26版

《深入理解Java虛擬機(jī)》第一章 OpenJDK12環(huán)境搭建-MacOS26版

《深入理解 Java 虛擬機(jī)》第一章 OpenJDK 12 環(huán)境搭建 - MacOS 26 版一、環(huán)境準(zhǔn)備OpenJDK 12 源碼下載安裝 JDK 11(編譯時(shí)作為 Boot JDK)安裝 Xcode 和 Command Line Tools安裝 Homebrew安裝依賴庫(kù)二、開(kāi)始編譯 JDK三、逐項(xiàng)修復(fù)問(wèn)題 1:SDK do…

2026/8/2 12:25:40 閱讀更多
逆向工程中編碼與加密算法的識(shí)別、分析與實(shí)戰(zhàn)應(yīng)用

逆向工程中編碼與加密算法的識(shí)別、分析與實(shí)戰(zhàn)應(yīng)用

1. 從“菜雞”到入門(mén):為什么逆向工程繞不開(kāi)編碼與加密 剛接觸逆向工程的朋友,常常會(huì)卡在一個(gè)看似基礎(chǔ),實(shí)則至關(guān)重要的環(huán)節(jié):面對(duì)程序里一堆“亂碼”或者經(jīng)過(guò)變換的數(shù)據(jù),完全無(wú)從下手。你興致勃勃地打開(kāi)調(diào)試器&#xff0…

2026/8/2 12:25:40 閱讀更多
微信群聊總結(jié):從信息過(guò)載到價(jià)值提煉的方法論與實(shí)戰(zhàn)指南

微信群聊總結(jié):從信息過(guò)載到價(jià)值提煉的方法論與實(shí)戰(zhàn)指南

1. 從信息過(guò)載到價(jià)值提煉:為什么我們需要“群聊總結(jié)” 每天打開(kāi)微信,幾十個(gè)甚至上百個(gè)群聊的紅點(diǎn)提示,是不是讓你感到一陣陣的焦慮?工作群、項(xiàng)目群、家庭群、朋友群、興趣群……海量的信息碎片像潮水一樣涌來(lái),重要的通…

2026/8/2 12:25:40 閱讀更多
Unity構(gòu)建優(yōu)化利器:Build Report Tool深度解析與實(shí)戰(zhàn)指南

Unity構(gòu)建優(yōu)化利器:Build Report Tool深度解析與實(shí)戰(zhàn)指南

1. 項(xiàng)目概述:為什么我們需要一個(gè)構(gòu)建報(bào)告工具? 如果你是一個(gè)Unity開(kāi)發(fā)者,尤其是負(fù)責(zé)項(xiàng)目發(fā)布和迭代的工程師,那么“構(gòu)建”這個(gè)詞對(duì)你來(lái)說(shuō)一定不陌生。從點(diǎn)擊菜單欄的“Build”按鈕,到最終生成一個(gè)可執(zhí)行文件或安裝包&a…

2026/8/2 12:25:40 閱讀更多
國(guó)內(nèi)零門(mén)檻部署AI編程助手:Codex替代方案與VSCode集成指南

國(guó)內(nèi)零門(mén)檻部署AI編程助手:Codex替代方案與VSCode集成指南

這次我們來(lái)看一個(gè)在國(guó)內(nèi)免費(fèi)安裝使用 Codex 的完整方案。對(duì)于很多開(kāi)發(fā)者來(lái)說(shuō),Codex 是一個(gè)強(qiáng)大的 AI 編程助手,但直接訪問(wèn)和使用往往存在門(mén)檻。這篇文章的重點(diǎn)不是探討 Codex 背后的復(fù)雜技術(shù),而是提供一個(gè)清晰、可操作的本地化部署和使用指南…

2026/8/2 12:15:40 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢(qián)從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢(qián)從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多