Release 4.3.2 #342
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0 | |
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@5df0ca6cbf14efcd08f8d5bd5e049a3cc8e07fd2 # v2.24.0 | |
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 }} |