mirror of
https://github.com/Eugeny/tabby.git
synced 2025-07-20 18:38:01 +00:00
Fix caching on build
- Fix cache on x64 - Run tar as root
This commit is contained in:
49
.github/workflows/build.yml
vendored
49
.github/workflows/build.yml
vendored
@@ -160,42 +160,49 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install libarchive-tools zsh crossbuild-essential-${{matrix.arch}}
|
||||||
|
|
||||||
|
- name: Setup tar to run as root
|
||||||
|
run: sudo chmod u+s "$(command -v tar)"
|
||||||
|
if: matrix.build-arch != 'x64'
|
||||||
|
|
||||||
- name: Download cached sysroot
|
- name: Download cached sysroot
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
id: cache-sysroot
|
id: dl-cached-sysroot
|
||||||
if: matrix.build-arch !='x64'
|
if: matrix.build-arch !='x64'
|
||||||
with:
|
with:
|
||||||
key: sysroot-${{matrix.build-arch}}
|
key: sysroot-${{matrix.build-arch}}
|
||||||
path: /${{matrix.build-arch}}-sysroot
|
path: /${{matrix.build-arch}}-sysroot
|
||||||
|
|
||||||
- name: Install deps (amd64)
|
- name: Setup crossbuild sysroot
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update -y && sudo apt-get install debootstrap qemu-user-static binfmt-support -y
|
||||||
sudo apt-get install libarchive-tools zsh crossbuild-essential-${{matrix.arch}}
|
sudo qemu-debootstrap --include=libfontconfig1-dev,libsecret-1-dev,libnss3,libatk1.0-0,libatk-bridge2.0-0,libgdk-pixbuf2.0-0,libgtk-3-0,libgbm1 --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb --arch ${{matrix.arch}} bionic /${{matrix.build-arch}}-sysroot/ http://ports.ubuntu.com/ubuntu-ports/
|
||||||
|
sudo find /${{matrix.build-arch}}-sysroot -type l -lname '/*' -exec sh -c 'file="$0"; dir=$(dirname "$file"); target=$(readlink "$0"); prefix=$(dirname "$dir" | sed 's@[^/]*@\.\.@g'); newtarget="$prefix$target"; ln -snf $newtarget $file' {} \; ;
|
||||||
|
if: matrix.build-arch != 'x64' && steps.dl-cached-sysroot.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: Setup Crossbuild (${{matrix.arch}})
|
- name: Setup env to use ${{matrix.build-arch}} sysroot
|
||||||
run: |
|
run: |
|
||||||
echo "CFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
echo "CFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||||
echo "CXXFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
echo "CXXFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||||
echo "LDFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
echo "LDFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||||
|
|
||||||
[[ ${npm_config_arch} == 'arm' ]] && echo "npm_config_arch=armv7l" >> $GITHUB_ENV
|
[[ ${npm_config_arch} == 'arm' ]] && echo "npm_config_arch=armv7l" >> $GITHUB_ENV
|
||||||
|
|
||||||
if [[ ${{matrix.arch}} == 'armhf' ]]; then
|
if [[ ${{matrix.arch}} == 'armhf' ]]; then
|
||||||
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig/" >> $GITHUB_ENV
|
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig/" >> $GITHUB_ENV
|
||||||
elif [[ ${{matrix.arch}} == 'arm64' ]]; then
|
elif [[ ${{matrix.arch}} == 'arm64' ]]; then
|
||||||
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/aarch64-linux-gnu/pkgconfig/" >> $GITHUB_ENV
|
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/aarch64-linux-gnu/pkgconfig/" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
if: matrix.build-arch != 'x64'
|
||||||
sudo apt-get update -y && sudo apt-get install debootstrap qemu-user-static binfmt-support -y
|
|
||||||
sudo qemu-debootstrap --include=libfontconfig1-dev,libsecret-1-dev,libnss3,libatk1.0-0,libatk-bridge2.0-0,libgdk-pixbuf2.0-0,libgtk-3-0,libgbm1 --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb --arch ${{matrix.arch}} bionic /${{matrix.build-arch}}-sysroot/ http://ports.ubuntu.com/ubuntu-ports/
|
|
||||||
sudo find /${{matrix.build-arch}}-sysroot -type l -lname '/*' -exec sh -c 'file="$0"; dir=$(dirname "$file"); target=$(readlink "$0"); prefix=$(dirname "$dir" | sed 's@[^/]*@\.\.@g'); newtarget="$prefix$target"; ln -snf $newtarget $file' {} \; ;
|
|
||||||
if: matrix.build-arch != 'x64' && steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: Install npm_modules (amd64)
|
- name: Install npm_modules (amd64)
|
||||||
run: |
|
run: |
|
||||||
npm i -g yarn node-gyp
|
npm i -g yarn node-gyp
|
||||||
yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target-arch=${{matrix.build-arch}}
|
yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target-arch=${{matrix.build-arch}}
|
||||||
|
|
||||||
- name: Webpack (${{matrix.arch}})
|
- name: Webpack (${{matrix.arch}})
|
||||||
run: yarn run build --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}
|
run: yarn run build --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}
|
||||||
|
Reference in New Issue
Block a user