I have a bamboo plan set up to pull from a bitbucket repository. It builds every time a push is made to the repo. If and only if the plan successfully completes, I want to push the changes (the ones I originally pushed to bitbucket which triggered the plan) to a remote git server.
So far I did the following:
- The first stage pulls the repo, and shares the '.git' directory as an artifact
- A few stages build and test the repository
- The last stage has the '.git' repository as an artifact dependency. I use a script to add the remote repo and then push to it.
If I set the 'Source Code Checkout' task to 'Force Clean Build' this works and every commit I make is built on the server, then pushed to the remote repository. This is what I want.
However if I don't force a clean build, the first build's push is sent to the remote, but consequent builds are not. If I navigate to the Job's directory (for me /var/atlassian/application-data/bamboo/xml-data/build-dir/<JOB_NAME>) and run 'git status' I get: "HEAD detached at 0631325" - showing the short version of the hash of the latest commit.
I'm not familiar enough with git to understand exactly how to deal with this in an efficient manner. I know pulling the repo again completely to another location would technically work, but I feel that that is unnecessary since to build the plan the repo was pulled already. The files are already there.
Is there a recommended way that I could push the changes from this headless repo to a remote repo, instead of pushing from the outdated origin branch?