diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..f5e422f --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,22 @@ +--- +name: release +on: + push: + tags: + - 'v*' +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Archive + run: make inotify-info-${{ github.ref_name }}.tar.gz + - name: Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/v') + with: + files: inotify-info-${{ github.ref_name }}.tar.gz + generate_release_notes: true + draft: true + prerelease: true diff --git a/.gitignore b/.gitignore index 08376e7..d8a5a7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ _debug/ _release/ + +/inotify-info-v*.tar.gz diff --git a/Makefile b/Makefile index 643c951..6bf0e0a 100644 --- a/Makefile +++ b/Makefile @@ -109,3 +109,9 @@ clean: $(VERBOSE_PREFIX)$(RM) $(OBJS) $(VERBOSE_PREFIX)$(RM) $(OBJS:.o=.d) $(VERBOSE_PREFIX)$(RM) $(OBJS:.o=.dwo) + +define RELEASE_RULES +inotify-info-$(TAG).tar.gz: + git archive --prefix=inotify-info-$(TAG)/ $(TAG) | gzip -n > $$@ +endef +$(foreach TAG,$(shell git tag 2>/dev/null),$(eval $(RELEASE_RULES)))