diff options
| author | Josh Rahm <joshuarahm@gmail.com> | 2023-01-25 18:31:31 +0000 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2023-01-25 18:31:31 +0000 |
| commit | 9243becbedbb6a1592208051f8fa2b090dcc5e7d (patch) | |
| tree | 607c2a862ec3f4399b8766383f6f8e04c4aa43b4 /.github/workflows/release.yml | |
| parent | 9e40b6e9e1bc67f2d856adb837ee64dd0e25b717 (diff) | |
| parent | 3c48d3c83fc21dbc0841f9210f04bdb073d73cd1 (diff) | |
| download | rneovim-usermarks.tar.gz rneovim-usermarks.tar.bz2 rneovim-usermarks.zip | |
Merge remote-tracking branch 'upstream/master' into usermarksusermarks
Diffstat (limited to '.github/workflows/release.yml')
| -rw-r--r-- | .github/workflows/release.yml | 83 |
1 files changed, 60 insertions, 23 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6933e9330..1df33962e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,8 +36,10 @@ jobs: id: build run: | CC=gcc-10 make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH=" - 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)" + printf 'version<<END\n' >> $GITHUB_OUTPUT + ./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT + printf 'END\n' >> $GITHUB_OUTPUT + printf 'release=%s\n' "$(./build/bin/nvim --version | head -n 1)" >> $GITHUB_OUTPUT make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-linux64" install cd "$GITHUB_WORKSPACE/build/" cpack -C $NVIM_BUILD_TYPE @@ -51,14 +53,28 @@ jobs: appimage: runs-on: ubuntu-20.04 + container: + image: ubuntu:18.04 + options: --privileged # Privileged mode is needed to load fuse module. steps: + - name: Prepare container + run: | + apt-get update + apt-get install -y software-properties-common + add-apt-repository -y ppa:ubuntu-toolchain-r/test # For gcc-10. + add-apt-repository -y ppa:git-core/ppa # For git>=2.18. + apt-get update + apt-get install -y git gcc-10 + apt-get install -y fuse libfuse2 # For linuxdeploy. + # Workaround for https://github.com/actions/checkout/issues/766. + git config --global --add safe.directory "$GITHUB_WORKSPACE" - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install -y autoconf automake build-essential cmake gettext libtool-bin locales ninja-build pkg-config unzip + apt-get update + apt-get install -y autoconf automake build-essential cmake gettext libtool-bin locales ninja-build pkg-config unzip - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') run: CC=gcc-10 make appimage-latest - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') @@ -113,6 +129,11 @@ jobs: DEPS_CMAKE_FLAGS="$OSX_FLAGS" make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-macos" install cd "$GITHUB_WORKSPACE/build/" + # Make sure we build everything for M1 as well + for macho in bin/* lib/nvim/parser/*.so + do + lipo -info "$macho" | grep -q arm64 || exit 1 + done cpack -C "$NVIM_BUILD_TYPE" - uses: actions/upload-artifact@v3 with: @@ -126,26 +147,27 @@ jobs: DEPS_BUILD_DIR: ${{ format('{0}/nvim-deps', github.workspace) }} DEPS_PREFIX: ${{ format('{0}/nvim-deps/usr', github.workspace) }} CMAKE_BUILD_TYPE: "RelWithDebInfo" - strategy: - matrix: - include: - - config: MSVC_64 - archive: nvim-win64 - name: windows (${{ matrix.config }}) + name: windows (MSVC_64) steps: - uses: actions/checkout@v3 with: fetch-depth: 0 + - name: Set env + run: ./.github/workflows/env.ps1 - name: Build deps - run: .\ci\build.ps1 -BuildDeps + run: | + cmake -S cmake.deps -B $env:DEPS_BUILD_DIR -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' + cmake --build $env:DEPS_BUILD_DIR - name: build package - run: .\ci\build.ps1 -Package + run: | + cmake -B build -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' -DDEPS_PREFIX="$env:DEPS_PREFIX" + cmake --build build --target package - uses: actions/upload-artifact@v3 with: - name: ${{ matrix.archive }} + name: nvim-win64 path: | - build/${{ matrix.archive }}.msi - build/${{ matrix.archive }}.zip + build/nvim-win64.msi + build/nvim-win64.zip retention-days: 1 publish: @@ -227,16 +249,31 @@ jobs: if [ "$TAG_NAME" != "nightly" ]; then gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/* fi + publish-winget: - needs: publish # run after publish job is finished - # publish to winget only on stable releases - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') - runs-on: windows-latest # action can only be run on windows + needs: publish + runs-on: windows-latest steps: - - uses: vedantmgoyal2009/winget-releaser@latest + - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') + name: Publish stable + uses: vedantmgoyal2009/winget-releaser@v1 with: identifier: Neovim.Neovim - # the latter one is a fallback value, reference: - # https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value - release-tag: ${{ github.event.inputs.tag_name || github.ref }} + release-tag: ${{ github.event.inputs.tag_name || github.ref_name }} + token: ${{ secrets.WINGET_TOKEN }} + - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') + name: Get nightly version + id: get-version + run: | + Invoke-WebRequest https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.msi -OutFile setup.msi + Install-Module -Name 'Carbon.Windows.Installer' -Force + $VERSION = (Get-CMsi (Resolve-Path .\setup.msi).Path).ProductVersion + "version=$VERSION" >> $env:GITHUB_OUTPUT + - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') + name: Publish nightly + uses: vedantmgoyal2009/winget-releaser@v1 + with: + identifier: Neovim.Neovim.Nightly + version: ${{ steps.get-version.outputs.version }} + release-tag: nightly token: ${{ secrets.WINGET_TOKEN }} |