Giter Club home page Giter Club logo

merger's Introduction

Multi Store Merge GitHub Action for Shopify

This GitHub action is designed to automate the process of merging changes between branches in Shopify repositories. It handles specific file checkout and commit operations, focusing on the unique structure of Shopify themes and their configuration files.

The action works based on the following rules:

  • If a merge is unnecessary (the 'from' branch is already an ancestor of the 'to' branch), the action performs no action.
  • If the merge fails due to conflicts, the action will fail, and the repository maintainer is required to perform the merge manually.

Installation

To use this action, create the .github/workflows/multi-store-merge.yml file in your Shopify repository with the following content:

name: "Multi Store Merge"

on:
  push:

jobs:
  merge:
    runs-on: ubuntu-latest


    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Shopify Multi Store Deployer
        uses: jamiemccleave/[email protected]
        with:
          from_branch: "master"
          to_branch: "stores/store-name/master-region"
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Note: Replace from-branch-name, to-branch-name, [email protected], and your-repo with the corresponding values for your scenario. Also, replace PUSH_TOKEN with the name of the secret containing the token for push operations.

Parameters

from_branch

The name of the branch from which changes will be merged (default master).

to_branch

The name of the branch into which changes will be merged (default develop).

user_name

The user name to be used for git commits (default GitHub Action : Multi Store Merge Bot).

user_email

The user email to be used for git commits (default [email protected]).

push_token

The name of the environment variable containing the token to use for push operations (default GITHUB_TOKEN). This is particularly useful when pushing changes onto protected branches. To avoid exposing sensitive information in the logs, it's strongly recommended to store this token value in a secret. The GITHUB_TOKEN is still required for making API calls.

with:
  push_token: "YOUR_PUSH_TOKEN"
env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  YOUR_PUSH_TOKEN: ${{ secrets.YOUR_PUSH_TOKEN }}

local_settings_data

A boolean parameter that dictates how config/*.json files are handled in Shopify themes. If set to true, all files in the config directory are checked out and added to the commit. If set to false, only the config/settings_data.json file is handled (default false).

with:
  local_settings_data: true

Note: Replace YOUR_PUSH_TOKEN with the name of your specific secret for the push token.

Workflow

The action operates by merging changes from the specified 'from' branch into the 'to' branch. During the merge process, specific files related to Shopify theme configurations (e.g., template JSON files, section JSON files, locale JSON files, and settings_data.json) are selectively checked out and added to the commit, providing a granular control over the merge operation.

merger's People

Contributors

kadreev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.