From bc0599246ff096745dc430a78506709f55ae9aa4 Mon Sep 17 00:00:00 2001 From: realbigsean Date: Tue, 24 Aug 2021 01:36:26 +0000 Subject: [PATCH] Windows binaries (#2492) ## Issue Addressed Resolves #2406 ## Proposed Changes Add windows release binaries to our CI ## Additional Info Co-authored-by: realbigsean --- .github/workflows/release.yml | 33 ++++++++++++++++++++++++++++++- book/src/installation-binaries.md | 7 +++++-- book/src/installation.md | 2 +- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9493d062..bca28dbe2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -97,7 +97,9 @@ jobs: x86_64-unknown-linux-gnu, x86_64-unknown-linux-gnu-portable, x86_64-apple-darwin, - x86_64-apple-darwin-portable] + x86_64-apple-darwin-portable, + x86_64-windows, + x86_64-windows-portable] include: - arch: aarch64-unknown-linux-gnu platform: ubuntu-latest @@ -111,6 +113,10 @@ jobs: platform: macos-latest - arch: x86_64-apple-darwin-portable platform: macos-latest + - arch: x86_64-windows + platform: windows-latest + - arch: x86_64-windows-portable + platform: windows-latest runs-on: ${{ matrix.platform }} needs: extract-version @@ -168,7 +174,16 @@ jobs: if: matrix.arch == 'x86_64-apple-darwin' run: cargo install --path lighthouse --force --locked --features modern + - name: Build Lighthouse for Windows portable + if: matrix.arch == 'x86_64-windows-portable' + run: cargo install --path lighthouse --force --locked --features portable + + - name: Build Lighthouse for Windows modern + if: matrix.arch == 'x86_64-windows' + run: cargo install --path lighthouse --force --locked --features modern + - name: Configure GPG and create artifacts + if: startsWith(matrix.arch, 'x86_64-windows') != true env: GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} @@ -182,6 +197,20 @@ jobs: echo "$GPG_PASSPHRASE" | gpg --passphrase-fd 0 --pinentry-mode loopback --batch -ab lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz mv *tar.gz* .. + - name: Configure GPG and create artifacts Windows + if: startsWith(matrix.arch, 'x86_64-windows') + env: + GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + run: | + echo $env:GPG_SIGNING_KEY | gpg --batch --import + mkdir artifacts + move $env:USERPROFILE/.cargo/bin/lighthouse.exe ./artifacts + cd artifacts + tar -czf lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz lighthouse.exe + gpg --passphrase "$env:GPG_PASSPHRASE" --batch --pinentry-mode loopback -ab lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz + move *tar.gz* .. + # ======================================================================= # Upload artifacts # This is required to share artifacts between different jobs @@ -276,6 +305,8 @@ jobs: | | x86_64 | [lighthouse-${{ env.VERSION }}-x86_64-unknown-linux-gnu-portable.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-unknown-linux-gnu-portable.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-unknown-linux-gnu-portable.tar.gz.asc) | | | aarch64 | [lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) | | | aarch64 | [lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu-portable.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu-portable.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-aarch64-unknown-linux-gnu-portable.tar.gz.asc) | + | | x86_64 | [lighthouse-${{ env.VERSION }}-x86_64-windows.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-windows.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-windows.tar.gz.asc) | + | | x86_64 | [lighthouse-${{ env.VERSION }}-x86_64-windows-portable.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-windows-portable.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/lighthouse-${{ env.VERSION }}-x86_64-windows-portable.tar.gz.asc) | | | | | | | **System** | **Option** | - | **Resource** | | | Docker | [${{ env.VERSION }}](https://hub.docker.com/r/${{ env.IMAGE_NAME }}/tags?page=1&ordering=last_updated&name=${{ env.VERSION }}) | [${{ env.IMAGE_NAME }}](https://hub.docker.com/r/${{ env.IMAGE_NAME }}) | diff --git a/book/src/installation-binaries.md b/book/src/installation-binaries.md index d475c0ad0..4f092c1e2 100644 --- a/book/src/installation-binaries.md +++ b/book/src/installation-binaries.md @@ -4,15 +4,16 @@ Each Lighthouse release contains several downloadable binaries in the "Assets" section of the release. You can find the [releases on Github](https://github.com/sigp/lighthouse/releases). -> Note: binaries are not yet provided for Windows native. +> Note: binaries are provided for Windows native, but Windows Lighthouse support is still in beta testing. ## Platforms -Binaries are supplied for three platforms: +Binaries are supplied for four platforms: - `x86_64-unknown-linux-gnu`: AMD/Intel 64-bit processors (most desktops, laptops, servers) - `aarch64-unknown-linux-gnu`: 64-bit ARM processors (Raspberry Pi 4) - `x86_64-apple-darwin`: macOS with Intel chips +- `x86_64-windows`: Windows with 64-bit processors (Beta) Additionally there is also a `-portable` suffix which indicates if the `portable` feature is used: @@ -38,6 +39,8 @@ a portable `x86_64` binary. 1. (Optional) Move the `lighthouse` binary to a location in your `PATH`, so the `lighthouse` command can be called from anywhere. - E.g., `cp lighthouse /usr/bin` +> Windows users will need to execute the commands in Step 3 from PowerShell. + ## Troubleshooting If you get a SIGILL (exit code 132), then your CPU is incompatible with the optimized build diff --git a/book/src/installation.md b/book/src/installation.md index b2cf73dd0..009bfc00c 100644 --- a/book/src/installation.md +++ b/book/src/installation.md @@ -1,6 +1,6 @@ # 📦 Installation -Lighthouse runs on Linux, macOS, and Windows (via [WSL][] only). +Lighthouse runs on Linux, macOS, and Windows (still in beta testing). There are three core methods to obtain the Lighthouse application: