diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 4b96675..9ac0b29 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -101,6 +101,12 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - name: Prepare git # To get tags from `git describe` + run: git fetch --prune --unshallow + - name: Bundle all parsers + run: | + ./package/deb + ./package/zip - name: Release uses: softprops/action-gh-release@v1 with: diff --git a/package/deb b/package/deb new file mode 100755 index 0000000..0168507 --- /dev/null +++ b/package/deb @@ -0,0 +1,31 @@ +# /usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +version_num=$(git describe --tags --abbrev=0 | sed -E 's/v([0-9]+\.[0-9]+)/\1/') +commit_count=$(git rev-list --count --first-parent HEAD) + +version="$version_num.$commit_count" +echo + +pkg='tree-sitter-parsers' +rm -rf "$pkg" + +debian="$pkg/DEBIAN" +mkdir -p "$debian" + +dst="$pkg/usr/local/lib" +mkdir -p "$dst" + +cat <<-EOF > "$debian/control" + Package: $pkg + Version: $version + Architecture: amd64 + Maintainer: Firas al-Khalil + Description: A bunch of tree-sitter parsers. +EOF + +cp lib/libtree-sitter-*.so "$dst" +dpkg-deb --build "$pkg" "lib/$pkg.deb" + diff --git a/package/zip b/package/zip new file mode 100755 index 0000000..c44824a --- /dev/null +++ b/package/zip @@ -0,0 +1,12 @@ +# /usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +pkg='tree-sitter-parsers' +rm -rf "$pkg" +mkdir "$pkg" + +cp lib/libtree-sitter-*.dylib "$pkg" +zip "lib/$pkg.zip" "$pkg"/libtree-sitter-*.dylib +tar -cvzf "lib/$pkg.tar.gz" "$pkg"/libtree-sitter-*.dylib