diff options
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r-- | .github/workflows/release.yml | 79 |
1 files changed, 34 insertions, 45 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de90a077ff..9f26e667f7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,10 +39,21 @@ jobs: printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT linux: - runs-on: ubuntu-20.04 needs: setup + strategy: + fail-fast: false + matrix: + runner: [ ubuntu-20.04, ubuntu-24.04-arm ] + include: + - runner: ubuntu-20.04 + arch: x86_64 + cc: gcc-10 + - runner: ubuntu-24.04-arm + arch: arm64 + runs-on: ${{ matrix.runner }} env: - CC: gcc-10 + CC: ${{ matrix.cc }} + LDAI_NO_APPSTREAM: 1 # skip checking (broken) AppStream metadata for issues outputs: version: ${{ steps.build.outputs.version }} steps: @@ -52,22 +63,25 @@ jobs: fetch-depth: 0 - run: ./.github/scripts/install_deps.sh - run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV + - if: matrix.arch == 'arm64' + run: sudo apt-get update && sudo apt-get install -y libfuse2t64 - name: appimage - run: ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }} + run: | + ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }} - name: tar.gz run: cpack --config build/CPackConfig.cmake -G TGZ - uses: actions/upload-artifact@v4 with: - name: appimage + name: nvim-appimage-${{ matrix.arch }} path: | - build/bin/nvim.appimage - build/bin/nvim.appimage.zsync + build/bin/nvim-linux-${{ matrix.arch }}.appimage + build/bin/nvim-linux-${{ matrix.arch }}.appimage.zsync retention-days: 1 - uses: actions/upload-artifact@v4 with: - name: nvim-linux64 + name: nvim-linux-${{ matrix.arch }} path: | - build/nvim-linux64.tar.gz + build/nvim-linux-${{ matrix.arch }}.tar.gz retention-days: 1 - name: Export version id: build @@ -75,7 +89,6 @@ jobs: printf 'version<<END\n' >> $GITHUB_OUTPUT ./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT printf 'END\n' >> $GITHUB_OUTPUT - macos: needs: setup strategy: @@ -104,7 +117,6 @@ jobs: -D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \ -D CMAKE_FIND_FRAMEWORK=NEVER cmake --build .deps - - name: Build neovim run: | cmake -B build -G Ninja \ @@ -112,7 +124,6 @@ jobs: -D ENABLE_LIBINTL=OFF \ -D CMAKE_FIND_FRAMEWORK=NEVER cmake --build build - - name: Package run: cpack --config build/CPackConfig.cmake @@ -187,45 +198,23 @@ jobs: git push origin :stable || true # `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the # containing folder from the output. - - name: Generate Linux64 SHA256 checksums - run: | - cd ./nvim-linux64 - sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum - echo "SHA_LINUX_64_TAR=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV - - name: Generate App Image SHA256 checksums - run: | - cd ./appimage - sha256sum nvim.appimage > nvim.appimage.sha256sum - echo "SHA_APP_IMAGE=$(cat nvim.appimage.sha256sum)" >> $GITHUB_ENV - - name: Generate App Image Zsync SHA256 checksums - run: | - cd ./appimage - sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum - echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV - - name: Generate macos x86_64 SHA256 checksums - run: | - cd ./nvim-macos-x86_64 - sha256sum nvim-macos-x86_64.tar.gz > nvim-macos-x86_64.tar.gz.sha256sum - echo "SHA_MACOS_X86_64=$(cat nvim-macos-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV - - name: Generate macos arm64 SHA256 checksums - run: | - cd ./nvim-macos-arm64 - sha256sum nvim-macos-arm64.tar.gz > nvim-macos-arm64.tar.gz.sha256sum - echo "SHA_MACOS_ARM64=$(cat nvim-macos-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV - - name: Generate Win64 SHA256 checksums - run: | - cd ./nvim-win64 - sha256sum nvim-win64.zip > nvim-win64.zip.sha256sum - 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 + - run: | + for i in nvim-*; do + ( + cd $i || exit + sha256sum * >> $GITHUB_WORKSPACE/shasum.txt + ) + done - name: Publish release env: NVIM_VERSION: ${{ needs.linux.outputs.version }} DEBUG: api run: | envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md" + echo '```' >> "$RUNNER_TEMP/notes.md" + cat shasum.txt >> "$RUNNER_TEMP/notes.md" + echo '```' >> "$RUNNER_TEMP/notes.md" if [ "$TAG_NAME" != "nightly" ]; then - gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* + gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-arm64/* nvim-appimage-x86_64/* nvim-appimage-arm64/* nvim-win64/* shasum.txt fi - gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* + gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-arm64/* nvim-appimage-x86_64/* nvim-appimage-arm64/* nvim-win64/* shasum.txt |