diff --git a/Jenkinsfile b/Jenkinsfile index 03e1e65..a274ba4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,11 +28,12 @@ pipeline { sh ''' git config user.name "Jenkins Server" git config user.email jenkins@confdroid.com - # Ensure we're on the development branch (triggered by push) - git checkout development - # Create jenkins branch from development - git checkout -b jenkins-build-$BUILD_NUMBER - # Optionally merge master into jenkins to ensure compatibility + git fetch origin + # Reset the workspace to the exact branch revision that triggered the build. + git checkout -B "$BRANCH_NAME" "origin/$BRANCH_NAME" + # Create an isolated build branch from the triggering branch. + git checkout -B jenkins-build-$BUILD_NUMBER + # Merge the current master into the build branch before validation. git merge origin/master --no-ff || { echo "Merge conflict detected"; exit 1; } ''' } @@ -91,12 +92,10 @@ pipeline { git config user.name "Jenkins Server" git config user.email jenkins@confdroid.com git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit" - git push -o merge_request.create \ - -o merge_request.target=master \ - -o merge_request.title="Auto-merge for build $BUILD_NUMBER" \ - -o merge_request.description="Automated changes from Jenkins build $BUILD_NUMBER" \ - -o merge_request.merge_when_pipeline_succeeds=true \ - origin jenkins-build-$BUILD_NUMBER + git fetch origin + git checkout -B master origin/master + git merge --no-ff jenkins-build-$BUILD_NUMBER -m "Merge build $BUILD_NUMBER into master" + git push origin master ''' } } @@ -108,19 +107,14 @@ pipeline { usernameVariable: 'GITEA_USER', passwordVariable: 'GITEA_TOKEN')]) { script { - // Checkout from GitLab (already done implicitly) sh ''' + git fetch origin git checkout master - git pull origin master - git branch -D development - git branch -D jenkins-build-$BUILD_NUMBER - git rm -f Jenkinsfile - git rm -r --cached .vscode || echo "No .vscode to remove from git" - git rm -r --cached .puppet-lint.rc || echo "No .puppet-lint.rc to remove from git" - git commit --amend --no-edit --allow-empty - git remote add master https://sourcecode.confdroid.com/confdroid/confdroid_ssh.git + git reset --hard origin/master + git remote remove gitea || true + git remote add gitea https://sourcecode.confdroid.com/confdroid/confdroid_ssh.git git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \ - push master --mirror + push gitea refs/heads/master:refs/heads/master ''' } }