Skip to content

Release 4.3.6

Release 4.3.6 #354

Workflow file for this run

name: Release-Upload
on:
release:
workflow_dispatch:
jobs:
trigger-copr:
name: Submit a COPR
container: fedora:latest
runs-on: ubuntu-latest
steps:
- name: Check out proper version of sources
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Install API token for copr-cli
env:
API_TOKEN_CONTENT: ${{ secrets.COPR_API_TOKEN }}
run: |
mkdir -p "$HOME/.config"
echo "$API_TOKEN_CONTENT" > "$HOME/.config/copr"
- name: Install tooling for source RPM build
run: |
dnf -y install @development-tools @rpm-development-tools
dnf -y install copr-cli make
wget https://github.com/JCWasmx86/mesonlsp/archive/refs/tags/${GITHUB_REF_NAME}.tar.gz
mv ${GITHUB_REF_NAME}.tar.gz mesonlsp-v$(echo ${GITHUB_REF_NAME}|sed s/^v//g).tar.gz
- name: Build the source RPM
run: rpmbuild -bs mesonlsp.spec --define "_sourcedir $PWD" --define "_srcrpmdir $PWD"
- name: Submit the build by uploading the source RPM
run: copr build jcwasmx86/Swift-MesonLSP *.src.rpm
alpine-aarch64:
runs-on: ubuntu-22.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Build on Alpine
run: |
sudo apt purge -y podman
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg] https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/ /" sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null
sudo apt-get update
sudo apt-get -y install podman qemu-user-static
podman --version
DOCKER_BUILDKIT=1 docker build --platform linux/arm64 --network=host --file Dockerfile --output out .
sudo cp out/mesonlsp-alpine-static.zip mesonlsp-aarch64-unknown-linux-musl.zip
sudo unzip -o mesonlsp-aarch64-unknown-linux-musl.zip
sudo zip -9 mesonlint-aarch64-unknown-linux-musl.zip mesonlint env.txt COPYING
sudo rm mesonlsp mesonlint env.txt
sudo zip -d mesonlsp-aarch64-unknown-linux-musl.zip mesonlint
- name: Upload to release
uses: xresloader/upload-to-github-release@26f7cc1d7d924dc9b6d5008808be8278b7177811 # main
with:
file: mesonlsp-aarch64-unknown-linux-musl.zip
verbose: true
update_latest_release: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
alpine:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Build on Alpine
run: |
sudo apt purge -y podman
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg] https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/ /" sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null
sudo apt-get update
sudo apt-get -y install podman
podman --version
DOCKER_BUILDKIT=1 docker build --network=host --file Dockerfile --output out .
sudo cp out/mesonlsp-alpine-static.zip mesonlsp-x86_64-unknown-linux-musl.zip
sudo unzip -o mesonlsp-x86_64-unknown-linux-musl.zip
sudo zip -9 mesonlint-x86_64-unknown-linux-musl.zip mesonlint env.txt COPYING
sudo rm mesonlsp mesonlint env.txt
sudo zip -d mesonlsp-x86_64-unknown-linux-musl.zip mesonlint
- name: Upload to release
uses: xresloader/upload-to-github-release@26f7cc1d7d924dc9b6d5008808be8278b7177811 # main
with:
file: mesonlsp-x86_64-unknown-linux-musl.zip
verbose: true
update_latest_release: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
- name: Upload to release
uses: xresloader/upload-to-github-release@26f7cc1d7d924dc9b6d5008808be8278b7177811 # main
with:
file: mesonlint-x86_64-unknown-linux-musl.zip
verbose: true
update_latest_release: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: msys2/setup-msys2@ddf331adaebd714795f1042345e6ca57bd66cea8 # v2.24.1
with:
cache: true
path-type: inherit
msystem: MINGW64
pacboy: >-
gcc:p
curl:p
libarchive:p
meson:p
ninja:p
crt:p
dlfcn:p
libunwind:p
python:p
python-pip:p
python-mingw-ldd:p
- name: Build on Windows
run: |
pacman -S zip --noconfirm
pip install pygls lsprotocol
meson setup _build --buildtype release -Db_lto=true
ninja -C _build
sed -i "1i import sys" /d/a/_temp/msys64/mingw64/lib/python3.11/site-packages/pygls/client.py
sed -i "s/stderr=asyncio.subprocess.PIPE/stderr=sys.stderr/g" /d/a/_temp/msys64/mingw64/lib/python3.11/site-packages/pygls/client.py
ninja -C _build test || (cat _build/meson-logs/testlog.txt && exit 1)
_build/tests/libcxathrow/cxathrowtest.exe
strings _build/src/mesonlsp.exe|grep \\.dll$
(find /d/ | grep "libarchive-13.dll") || true
mingw-ldd.exe _build/src/mesonlsp.exe --output-format per-dep-list --dll-lookup-dirs /d/a/_temp/msys64/mingw64/bin/
mkdir -p /d/Artifacts
cp _build/src/mesonlsp.exe /d/Artifacts
cp $(mingw-ldd.exe _build/src/mesonlsp.exe --output-format per-dep-list --dll-lookup-dirs /d/a/_temp/msys64/mingw64/bin/ |& grep "=>"|sed s/.*=\>.//g|sort -u|grep -v not.found) /d/Artifacts
pacman -Q > /d/Artifacts/env.txt
cp COPYING /d/Artifacts/COPYING
./scripts/create_license_file.sh
cp 3rdparty.txt /d/Artifacts/COPYING
zip -9jpr mesonlsp-x86_64-pc-windows-gnu.zip /d/Artifacts/*
- name: Upload to release
uses: xresloader/upload-to-github-release@26f7cc1d7d924dc9b6d5008808be8278b7177811 # main
with:
file: mesonlsp-x86_64-pc-windows-gnu.zip
verbose: true
update_latest_release: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
macos:
strategy:
matrix:
id:
[
{ version: 13, triple: "x86_64-apple-darwin" },
{ version: 14, triple: "aarch64-apple-darwin" },
]
runs-on: macos-${{ matrix.id.version }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Build on macOS ${{ matrix.id.version }}
run: |
brew unlink pkg-config
brew link --overwrite python@3.12 || true
brew install zip google-benchmark libarchive pkg-config pkgconf fmt zstd bzip2 libiconv expat xz lz4 zlib subversion mercurial || true
svn --version
hg --version
python3 -m pip install --break-system-packages meson ninja pygls lsprotocol
mkdir libs
sudo cp $(brew --prefix)/opt/{libarchive,zstd,zlib,expat,xz,lz4,libb2}/lib/*.a libs
ls libs
export LDFLAGS="-L$PWD/libs"
export CPPFLAGS="-I$(brew --prefix)/opt/libarchive/include -I$(brew --prefix)/opt/zstd/include -I$(brew --prefix)/opt/bzip2/include -I$(brew --prefix)/opt/expat/include -I$(brew --prefix)/opt/zlib/include -I$(brew --prefix)/opt/bzip2/include -I$(brew --prefix)/opt/expat/include -I$(brew --prefix)/opt/zlib/include"
export PKG_CONFIG_PATH="$(brew --prefix)/opt/zstd/lib/pkgconfig:$(brew --prefix)/opt/libarchive/lib/pkgconfig:$(brew --prefix)/opt/expat/lib/pkgconfig:$(brew --prefix)/opt/zlib/lib/pkgconfig:$(brew --prefix)/opt/expat/lib/pkgconfig:$(brew --prefix)/opt/zlib/lib/pkgconfig"
mkdir ttttmp
sudo mv $(brew --prefix)/opt/{libarchive,zstd,zlib,expat,xz,lz4,libb2}/lib/*.dylib ttttmp/ || sudo mv /opt/homebrew/opt/{libarchive,zstd,zlib,expat,xz,lz4,libb2}/lib/*.dylib ttttmp/
brew link --overwrite pkg-config
export PATH="/opt/homebrew/opt/libarchive/bin:$PATH"
meson setup _build --buildtype release -Db_lto=true --default-library=static --prefer-static
ninja -C _build
ninja -C _build test
mkdir -p ${{ github.workspace }}/Artifacts
cp _build/src/mesonlsp ${{ github.workspace }}/Artifacts/mesonlsp
brew list --versions -d >> ${{ github.workspace }}/Artifacts/env.txt
cp COPYING ${{ github.workspace }}/Artifacts/COPYING
sudo cp ttttmp/*.dylib $(brew --prefix)/opt/{libarchive,zstd,zlib,expat,xz,lz4,libb2}/lib/ || sudo cp ttttmp/*.dylib /opt/homebrew/opt/{libarchive,zstd,zlib,expat,xz,lz4,libb2}/lib/ || true
./scripts/create_license_file.sh || touch 3rdparty.txt
cp 3rdparty.txt ${{ github.workspace }}/Artifacts/COPYING
zip -9jpr mesonlsp-${{ matrix.id.triple }}.zip ${{ github.workspace }}/Artifacts/*
- name: Upload to release
uses: xresloader/upload-to-github-release@26f7cc1d7d924dc9b6d5008808be8278b7177811 # main
with:
file: mesonlsp-${{ matrix.id.triple }}.zip
verbose: true
update_latest_release: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}