diff --git a/.github/workflows/changelog.py b/.github/workflows/changelog.py new file mode 100644 index 00000000..53780668 --- /dev/null +++ b/.github/workflows/changelog.py @@ -0,0 +1,28 @@ +import os +import re +import sys + +raw_git = os.popen('git log next --since="24 hours" --pretty=format:"- %h - {USERNAME}*+%al-%an*: %s"').read() + + +def compute_username(line): + stripped = re.search(r'(?<=\*)(.*?)(?=\*)', line).group(0) + + pattern = re.compile("[$@+&?].*[$@+&?]") + if pattern.match(stripped): + stripped = re.sub("[$@+&?].*[$@+&?]", "", stripped) + stripped = re.match(r'.+?(?=-)', stripped).group(0) + else: + stripped = re.sub(r'^.*?-', "", stripped) + return "@" + stripped + + +def compile_line(line): + username = compute_username(line) + line = re.sub(r'[*].*[*]', "", line) + line = line.replace("{USERNAME}", username) + return line + + +for row in raw_git.splitlines(): + print(compile_line(row)) diff --git a/.github/workflows/create_nightly_release.yml b/.github/workflows/create_nightly_release.yml index f217b40c..d68a52a2 100644 --- a/.github/workflows/create_nightly_release.yml +++ b/.github/workflows/create_nightly_release.yml @@ -35,6 +35,7 @@ jobs: - name: Checkout uses: actions/checkout@master with: + fetch-depth: 0 ref: next submodules: true - name: Git Sumbodule Update @@ -52,6 +53,14 @@ jobs: - name: Create SD Card ZIP run: | zip -r sdcard.zip sdcard + - name: Create changelog + run: | + CHANGELOG=$(python3 .github/workflows/changelog.py) + CHANGELOG="${CHANGELOG//'%'/'%25'}" + CHANGELOG="${CHANGELOG//$'\n'/'%0A'}" + CHANGELOG="${CHANGELOG//$'\r'/'%0D'}" + echo "::set-output name=content::$CHANGELOG" + id: changelog - name: Create Release id: create_release uses: actions/create-release@v1 @@ -59,12 +68,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: nightly-tag-${{ steps.date.outputs.date }} - release_name: Nightly-release - ${{ steps.date.outputs.date }} + release_name: Nightly Release - ${{ steps.date.outputs.date }} body: | **Nightly release - ${{ steps.date.outputs.date }}** This build is the latest and greatest, although may not be the most stable as this is a nightly release. - Version: ${{ steps.version_date.outputs.date }} - You can find the changes in this commit ${{ github.sha }} + ## Release notes + ### Revision (${{ steps.version_date.outputs.date }}): + ${{ steps.changelog.outputs.content }} draft: false prerelease: true - name: Upload Firmware Asset @@ -85,5 +95,5 @@ jobs: with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./sdcard.zip - asset_name: mayhem_nightly_${{ steps.date.outputs.date }}_COPY_TO_SDCARD.zip - asset_content_type: application/zip + asset_name: mayhem_nightly_${{ steps.version_date.outputs.date }}_COPY_TO_SDCARD.zip + asset_content_type: application/zip \ No newline at end of file