From b0654b9ca94df73a41166ccc9827e436b4e7a006 Mon Sep 17 00:00:00 2001 From: Max P Date: Fri, 16 Aug 2024 18:17:11 +0200 Subject: [PATCH] Refactor release workflow to ensure a clean branch Updated the release workflow to prepare a clean release branch by copying necessary files to a temporary directory and then resetting the branch to avoid residue from previous commits. This ensures only the relevant files are included in the release, enhancing the integrity and clarity of the release branch. --- .github/workflows/CreateRelease.yml | 33 +++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/workflows/CreateRelease.yml b/.github/workflows/CreateRelease.yml index fbb9fc0..5539a19 100644 --- a/.github/workflows/CreateRelease.yml +++ b/.github/workflows/CreateRelease.yml @@ -90,16 +90,37 @@ jobs: git config --local user.email "actions@github.com" shell: bash - - name: Create temporary branch - id: create_temp_branch + - name: Create release commit in the release branch + id: create_release_commit if: steps.check_version.outputs.skip_release == 'false' run: | - git checkout release - git reset - rm -f .gitignore + # Create a temporary directory to save the files + temp_dir=$(mktemp -d) + + # Copy the files to the temporary directory + cp -R README.md package.json LICENSE dist/ src/ tsconfig.json $temp_dir/ + + # Checkout the release branch (or create it if it doesn't exist) + git fetch origin + git checkout -b release origin/release || git checkout --orphan release + + # Remove all files from the working directory + git rm -rf . + + # Move the files back from the temporary directory + cp -R $temp_dir/* . + + # Clean up the temporary directory + rm -rf $temp_dir + + # Add the files to the release branch git add README.md package.json LICENSE dist/ src/ tsconfig.json + + # Commit the changes git commit -m "Prepare files for release ${{ env.VERSION }}" - git push origin release + + # Push the changes to the release branch + git push -u origin release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash