跳到主要内容

1 篇博文 含有标签「github/action」

查看所有标签

shopify项目设置自动化部署

· 阅读需 4 分钟
Yana Ching
Front End Engineer

Question

  1. 原生的 shopify 主题开发中引入了 tailwindwebpack 等编译工具,本地开发的时候控制台一直告警
  2. 在根目录中引入除了主题文件以外的其他文件时,无法使用 shopify theme push 等 shopify/cli 工具来预览在线开发主题
  3. 有时候在网页编辑器中修改主题之后,直接用 shopify theme pull 来拉取主题,会直接覆盖/移除本地其他重要文件
  4. 开发和用户环境有冲突,开发期间,shopify 店铺有数据增减,与 shopify 店铺直连的分支会接收来自店铺的一些更新,这部分更新 需要可以更新到开发分支

解决方案

  1. 维护一个单独的目录来存放主题文件,支持上传、下拉主题文件
  2. 创建 action 自动化部署来清理出一个干净的分支同步 shopify 店铺当前在线主题
  3. 同时在 dev 项目的 shopify 文件夹中维护另一个 github 地址来更新最新的 main 分支

具体操作

创建 Github Actions 工作流

github 仓库中,根目录中创建 .github/workflows/sync-shopify-to-main.yml 目录

name: Sync Shopify Folder to Main

on:
push:
branches:
- dev

jobs:
sync-shopify:
runs-on: ubuntu-latest

steps:
- name: Checkout dev branch
uses: actions/checkout@v2
with:
ref: dev

- name: Copy Shopify folder
run: |
mkdir shopify_copy
cp -R ./shopify/* shopify_copy/

- name: Checkout main branch
uses: actions/checkout@v2
with:
ref: main
persist-credentials: false

- name: Copy files to main
run: |
cp -R shopify_copy/* .

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

- name: Commit changes
run: |
git add .
git commit -m "Sync Shopify folder from dev branch"
git push origin main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  1. 触发条件:工作流在 dev 分支有推送事件时触发
  2. Checkout dev 分支:使用 actions/checkout@v2 操作从 dev 分支检出代码
  3. 复制 Shopify 文件夹:将./shopify 文件夹中的所有内容复制到一个临时目录 shopify_copy 中
  4. Checkout main 分支:再次使用 actions/checkout@v2 操作,这次检出 main 分支,并取消 persist-credentials 以防止凭证问题
  5. 复制文件到 main:将 shopify_copy 中的内容复制到当前工作目录(即 main 分支的根目录)
  6. 配置 Git:设置 Git 用户信息,以便 GitHub Actions 机器人能够提交更改
  7. 提交更改:添加、提交并推送更改到 main 分支。这里使用了 GitHub 提供的 GITHUB_TOKEN,该令牌由 GitHub Actions 自动提供, 并在运行工作流时注入到环境中