aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorHenry Fraser <henrymfraser@gmail.com>2022-02-08 06:49:09 +1000
committerHenry Fraser <henrymfraser@gmail.com>2022-02-24 19:54:44 +1000
commit087aad3dcd3439bb87832356067e0a9e26eca510 (patch)
treea12bf55389a68f10d21082975124f15e82e74809 /.github/workflows
parentf02a5a7bdaafc1c5ff61aee133eb2b6ba5f57586 (diff)
downloadrneovim-087aad3dcd3439bb87832356067e0a9e26eca510.tar.gz
rneovim-087aad3dcd3439bb87832356067e0a9e26eca510.tar.bz2
rneovim-087aad3dcd3439bb87832356067e0a9e26eca510.zip
ci: improved cpack packaging
Addresses: #12571 - Added the following installers through CMake files: - Windows NSIS. - Windows MSI. - Windows zip. - MacOs tarball. - Linux tarball. - Linux Deb package. - Tweaked pipeline CPack commands to build using new CMakeLists.txt configuration file. - Added icons and relevant packaging files. - Updated notes.md to reflect new installation instructions. This isn't meant to be the perfect solution, it's simply a first pass at using a simple packaging system to build Windows installers. A Debian package has also been added since it's very easy but other packages have been left out due to limiting the scope. Hopefully we can build further upon this and improve it over time with code signing, better icons and more user-friendly installation graphics and so on.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/notes.md42
-rw-r--r--.github/workflows/release.yml32
2 files changed, 64 insertions, 10 deletions
diff --git a/.github/workflows/notes.md b/.github/workflows/notes.md
index 9928d472b3..7181972696 100644
--- a/.github/workflows/notes.md
+++ b/.github/workflows/notes.md
@@ -6,8 +6,26 @@ ${NVIM_VERSION}
### Windows
-1. Extract **nvim-win64.zip**
-2. Run `nvim-qt.exe`
+#### Zip
+
+1. Download **nvim-win64.zip**
+2. Extract the zip.
+3. Run `nvim-qt.exe`
+
+#### MSI
+
+1. Download **nvim-win64.msi**
+2. Run the MSI
+3. Add the Neovim location to your path.
+ - Default location is `C:\Program Files\Neovim`
+4. Search and run `nvim-qt.exe` or run `nvim.exe` on your CLI of choice.
+
+#### NSIS
+
+1. Download **nvim-win64.exe**
+2. Run the installer.
+ - Ensure that the option to add the installation location to your path is checked if it's your first installation.
+3. Search and run `nvim-qt.exe` or run `nvim.exe` on your CLI of choice.
### macOS
@@ -17,6 +35,19 @@ ${NVIM_VERSION}
### Linux (x64)
+#### Tarball
+
+1. Download **nvim-linux64.tar.gz**
+2. Extract: `tar xzvf nvim-linux64.tar.gz`
+3. Run `./nvim-linux64/bin/nvim`
+
+#### Debian Package
+
+1. Download **nvim-linux64.deb**
+2. Install the package using `sudo apt install ./nvim-linux64.deb`
+3. Run `nvim`
+
+#### AppImage
1. Download **nvim.appimage**
2. Run `chmod u+x nvim.appimage && ./nvim.appimage`
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
@@ -32,9 +63,12 @@ ${NVIM_VERSION}
## SHA256 Checksums
```
-${SHA_LINUX_64}
+${SHA_LINUX_64_TAR}
+${SHA_LINUX_64_DEB}
${SHA_APP_IMAGE}
${SHA_APP_IMAGE_ZSYNC}
${SHA_MACOS}
-${SHA_WIN_64}
+${SHA_WIN_64_ZIP}
+${SHA_WIN_64_MSI}
+${SHA_WIN_64_EXE}
```
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b72c2ab71d..503db400ce 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -39,12 +39,17 @@ jobs:
printf '::set-output name=version::%s\n' "$(./build/bin/nvim --version | head -n 3 | sed -z 's/\n/%0A/g')"
printf '::set-output name=release::%s\n' "$(./build/bin/nvim --version | head -n 1)"
make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-linux64" install
- cd "$GITHUB_WORKSPACE/build/release"
- tar cfz nvim-linux64.tar.gz nvim-linux64
+ cd "$GITHUB_WORKSPACE/build/"
+ cpack -C $NVIM_BUILD_TYPE
- uses: actions/upload-artifact@v2
with:
name: nvim-linux64
- path: build/release/nvim-linux64.tar.gz
+ path: build/nvim-linux64.tar.gz
+ retention-days: 1
+ - uses: actions/upload-artifact@v2
+ with:
+ name: nvim-linux64
+ path: build/nvim-linux64.deb
retention-days: 1
appimage:
@@ -131,12 +136,21 @@ jobs:
- run: powershell ci\build.ps1 -NoTests
env:
CONFIGURATION: ${{ matrix.config }}
- - run: move build\Neovim.zip build\${{ matrix.archive }}.zip
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.archive }}
path: build/${{ matrix.archive }}.zip
retention-days: 1
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.archive }}
+ path: build/${{ matrix.archive }}.msi
+ retention-days: 1
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.archive }}
+ path: build/${{ matrix.archive }}.exe
+ retention-days: 1
publish:
needs: [linux, appimage, macOS, windows]
@@ -187,7 +201,9 @@ jobs:
run: |
cd ./nvim-linux64
sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum
- echo "SHA_LINUX_64=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV
+ echo "SHA_LINUX_64_TAR=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV
+ sha256sum nvim-linux64.deb > nvim-linux64.deb.sha256sum
+ echo "SHA_LINUX_64_DEB=$(cat nvim-linux64.deb.sha256sum)" >> $GITHUB_ENV
- name: Generate App Image SHA256 checksums
run: |
cd ./appimage
@@ -207,7 +223,11 @@ jobs:
run: |
cd ./nvim-win64
sha256sum nvim-win64.zip > nvim-win64.zip.sha256sum
- echo "SHA_WIN_64=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
+ echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
+ sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
+ echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
+ sha256sum nvim-win64.exe > nvim-win64.exe.sha256sum
+ echo "SHA_WIN_64_EXE=$(cat nvim-win64.exe.sha256sum)" >> $GITHUB_ENV
- name: Publish release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}