<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>github &#8211; 1738348785</title>
	<atom:link href="https://www.arkicho.cn/tag/github/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.arkicho.cn</link>
	<description>1738348785‘s blog</description>
	<lastBuildDate>Mon, 06 Apr 2026 08:43:02 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.arkicho.cn/wp-content/uploads/2023/11/cropped-110281182_p1-32x32.png</url>
	<title>github &#8211; 1738348785</title>
	<link>https://www.arkicho.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GitHub Actions自动化工作流</title>
		<link>https://www.arkicho.cn/blog/355/</link>
					<comments>https://www.arkicho.cn/blog/355/#respond</comments>
		
		<dc:creator><![CDATA[1738348785]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 08:40:49 +0000</pubDate>
				<category><![CDATA[文章]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[软件]]></category>
		<guid isPermaLink="false">https://www.arkicho.cn/?p=355</guid>

					<description><![CDATA[跑单元测试、打包代码、部署到服务器、发布版本号，能在代码提交的一瞬间自动完成。 什么是 GitHub Acti [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>跑单元测试、打包代码、部署到服务器、发布版本号，能在代码提交的一瞬间自动完成。</p>



<h2 class="wp-block-heading">什么是 GitHub Actions？<br></h2>



<p>简单来说，GitHub Actions 是一个事件驱动的自动化平台。<br>事件 (Event)：当你推送代码（push）、发起合并请求（pull request）或者给仓库打星（star）时。<br>动作 (Action)：它会自动触发预先定义好的任务。<br>它直接集成在 GitHub 中，无需像 Jenkins 那样额外部署服务器，而且对于开源项目是完全免费的。</p>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景一-python-项目-从测试到-release-自动发布-0">场景一：Python 项目——从测试到 Release 自动发布</h2>



<p>对于 Python 开发者，最优雅的工作流是：<strong>推送到主分支跑测试 -&gt; 打版本标签（Tag）自动生成 Release 并上传 Wheel 包。</strong></p>



<pre class="wp-block-preformatted"><code>name: Python Release Pipeline<br><br>on:<br>  push:<br>    branches: [ main ]<br>    tags: [ 'v*' ] # 匹配 v1.0.0, v2.1.0 等<br><br>jobs:<br>  test:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      - name: Set up Python<br>        uses: actions/setup-python@v5<br>        with:<br>          python-version: '3.10'<br>      - run: pip install pytest &amp;&amp; pytest<br><br>  publish:<br>    needs: test<br>    if: startsWith(github.ref, 'refs/tags/') # 只有推标签时才执行<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      - name: Build Wheel<br>        run: |<br>          pip install build<br>          python -m build<br>      - name: Create GitHub Release<br>        uses: softprops/action-gh-release@v2<br>        with:<br>          files: dist/*  # 自动将打包后的 whl 和 tar.gz 上传到 Release 附件<br>        env:<br>          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景二-前端项目-自动构建并部署到-github-pages-0">场景二：前端项目——自动构建并部署到 GitHub Pages</h2>



<p>如果你有一个 React、Vue 或静态博客（Hexo/Hugo），你一定希望代码一提交，网站就自动更新。</p>



<ul class="wp-block-list">
<li><strong>核心逻辑</strong>：安装依赖 -> 构建静态文件 -> 推送到 <code>gh-pages</code> 分支。</li>
</ul>



<pre class="wp-block-preformatted"><code>name: Deploy Website<br><br>on:<br>  push:<br>    branches: [ main ]<br><br>jobs:<br>  deploy:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      <br>      - name: Setup Node<br>        uses: actions/setup-node@v4<br>        with:<br>          node-version: '20'<br>          cache: 'npm'<br><br>      - run: npm install<br>      - run: npm run build  # 产出通常在 dist 文件夹<br><br>      - name: Deploy to GitHub Pages<br>        uses: JamesIves/github-pages-deploy-action@v4<br>        with:<br>          folder: dist    # 部署构建后的文件夹<br>          branch: gh-pages # 部署到的目标分支</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景三-devops-进阶-自动构建-docker-镜像并推送到仓库-0">场景三：DevOps 进阶——自动构建 Docker 镜像并推送到仓库</h2>



<p>对于微服务开发者，自动更新 Docker 镜像并推送到 Docker Hub 或阿里云镜像服务是刚需。</p>



<ul class="wp-block-list">
<li><strong>亮点</strong>：利用 <code>secrets</code> 保护账号密码，利用 <code>tags</code> 自动给镜像打版本。</li>
</ul>



<pre class="wp-block-preformatted"><code>name: Docker Build and Push<br><br>on:<br>  push:<br>    tags: [ 'v*' ]<br><br>jobs:<br>  docker:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - name: Login to Docker Hub<br>        uses: docker/login-action@v3<br>        with:<br>          username: ${{ secrets.DOCKERHUB_USERNAME }}<br>          password: ${{ secrets.DOCKERHUB_TOKEN }}<br><br>      - name: Build and push<br>        uses: docker/build-push-action@v5<br>        with:<br>          push: true<br>          tags: user/my-app:latest, user/my-app:${{ github.ref_name }} # 同时打 latest 和版本号标签</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景四-定时任务-cron-jobs-你的云端小秘书-0">场景四：定时任务（Cron Jobs）——你的云端小秘书</h2>



<p>GitHub Actions 不仅能跟随代码变动触发，还能<strong>定时运行</strong>。比如：每天早上 8 点抓取天气、自动签到、或者定时清理数据库。</p>



<pre class="wp-block-preformatted"><code>name: Daily Cron Job<br><br>on:<br>  schedule:<br>    - cron: '0 0 * * *' # 每天北京时间上午 8 点运行 (UTC 0:00)<br>  workflow_dispatch:   # 允许手动在页面点击运行<br><br>jobs:<br>  morning-task:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - name: Run my script<br>        run: curl https://my-api.com/daily-checkin?token=${{ secrets.MY_TOKEN }}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--总结-0">总结</h2>



<p>GitHub Actions 的强大之处在于它消除了“环境一致性”的问题。无论是 Python 的打包、前端的部署，还是 Docker 的分发，你只需要在 <code>.github/workflows</code> 下写好那几十行 YAML 脚本，剩下的就交给 GitHub 的服务器去处理。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="heading-ba90d684-ae65-4ebf-bdbb-aeb12c5ea0d7--相关资源-0">相关资源</h3>



<ul class="wp-block-list">
<li><a href="https://docs.github.com/en/actions" target="_blank" rel="noreferrer noopener">官方文档</a></li>



<li><a href="https://github.com/marketplace?type=actions" target="_blank" rel="noreferrer noopener">GitHub Actions 市场</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.arkicho.cn/blog/355/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
