# Push build folder from dev to main branch

**URL:** <https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609>\
**Category:** Deployments\
**Created:** [December 23, 2020, 5:45pm UTC](https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609 "2020-12-23T17:45:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bart-kipping](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/bart-kipping/32/26302_2.png) [@bart-kipping](https://discuss.circleci.com/u/bart-kipping)\
**Post date:** [December 23, 2020, 5:45pm UTC](https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609/1 "2020-12-23T17:45:28Z")

</div>

Hi there,

**The situation:**  
I have a simple gatsby-project with some headless CMS features.  
Now I pushed my local directory to my github repo in a branch called ‘dev’ (contains config.yml /src package.json etc.)

**Goal:**  
I want to use circleCI to build the code and than push the builded code (static files) to the main branch in a folder called “public” so it can be deployed to my clients “self-hosted” hoster using cPanel"

**Problem:**  
I get the code to build but i have no clue where this build lives now.

**Question**  
So, how can i instruct circleCI to:  
build into a “public” folder and then push “public” from dev branch to main branch

A lot of thanks in advance,

Here is my attempt:

```
version: 2.1

jobs:
  build:
    executor: node/default
    steps:
      - checkout
      - node/install-packages:
          cache-path: ~/project/node_modules
          override-ci-command: npm install
      - run: npm run build
  push:
    machine: true
    steps:
      - checkout
      - add_ssh_keys:
          fingerprints:
            - "<my_fingerprint>"
      - run:
          name: Commit to GitHub
          command: |
            git config user.email "<my_email>"
            git config user.name "<my_username>"
            git commit --allow-empty -am "Automatic commit from CircleCI [skip ci]"
            git push origin main

orbs:
  node: circleci/node@4.0.0

workflows:
  build-and-deploy:
    jobs:
      - build
      - push
```

---

<div class="post-metadata">

**Author:** ![bart-kipping](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/bart-kipping/32/26302_2.png) [@bart-kipping](https://discuss.circleci.com/u/bart-kipping)\
**Post date:** [December 23, 2020, 10:30pm UTC](https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609/2 "2020-12-23T22:30:34Z")

</div>

Got it, this did the job:

```
version: 2.1

jobs:
  build:
    executor: node/default
    steps:
      - checkout
      - node/install-packages:
          cache-path: ~/project/node_modules
          override-ci-command: npm install
      - run: npm run build
      - store_artifacts:
          path: public/
      - add_ssh_keys:
          fingerprints:
            - "<my_fingerprint>"
      - run:
          name: Push to GitHub
          command: |
            git config user.email "<my_email>"
            git config user.name "<my_username>"
            git checkout -f main
            git add public/*
            git commit --allow-empty -m "Automatic commit from CircleCI [skip ci]"
            git push -u origin main

orbs:
  node: circleci/node@3.0.0

workflows:
  build-and-deploy:
    jobs:
      - build
```

---

<div class="post-metadata">

**Author:** ![thekatertot](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/thekatertot/32/25169_2.png) [@thekatertot](https://discuss.circleci.com/u/thekatertot)\
**Post date:** [December 24, 2020, 12:02am UTC](https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609/3 "2020-12-24T00:02:03Z")

</div>

Thank you @bart-kipping for providing a solution!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [January 3, 2021, 12:02am UTC](https://discuss.circleci.com/t/push-build-folder-from-dev-to-main-branch/38609/4 "2021-01-03T00:02:05Z")

</div>

Closed on January 3, 2021, 12:02am UTC

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
