config.h edited final ver and new release added #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release DWM Binary | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- config.h | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update && sudo apt-get upgrade -y | |
sudo apt-get install -y build-essential git libx11-dev libx11-xcb-dev libxcb-res0-dev libxinerama-dev libxft-dev libimlib2-dev | |
- name: Install GitHub CLI | |
run: | | |
sudo apt-get install -y gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.DWM_TOKEN }}" | gh auth login --with-token | |
- name: Build and Release | |
run: | | |
make clean | |
make release | |
- name: Create release | |
id: create_release | |
run: | | |
version=$(date +'%Y.%m.%d') | |
# Get the changelog for the last 20 commits | |
changelog=$(git log --oneline --pretty=format:"* %s (%h)" | head -n 20) | |
echo "Changelog: $changelog" > release/changelog.txt | |
# Get the last release tag | |
last_release=$(git describe --tags --abbrev=0) | |
# Get merged PR details since the last release | |
pr_details=$(git log ${last_release}..HEAD --merges --pretty=format:"* %s by %an (%h)" | grep -i 'merge pull request') | |
# Append Merged Pull Requests to the changelog | |
echo "Merged Pull Requests since $last_release:" >> release/changelog.txt | |
echo "$pr_details" >> release/changelog.txt | |
# Get unique contributor names since the last release | |
contributors=$(git log ${last_release}..HEAD --pretty=format:"%an" | sort -u | awk '{print "* " $0}') | |
# Append Contributors to the changelog | |
echo -e "\n**Contributors:**" >> release/changelog.txt | |
echo "$contributors" >> release/changelog.txt | |
# Create the GitHub release | |
gh release create "v${version}.$(git rev-list --count HEAD)" release/dwm-${version}.tar.gz release/changelog.txt --title "Release v${version}.$(git rev-list --count HEAD)" --notes "$(cat release/changelog.txt)" | |
- name: Clean up | |
run: | | |
rm -f release/dwm-${version}.tar.gz # Optional: clean up the tarball if needed |