|
@@ -0,0 +1,120 @@
|
|
|
+name: CI
|
|
|
+
|
|
|
+on:
|
|
|
+ push:
|
|
|
+ pull_request:
|
|
|
+ branches: [ master ]
|
|
|
+
|
|
|
+jobs:
|
|
|
+ linux:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ arch: [x64, arm64, arm]
|
|
|
+ env:
|
|
|
+ OS_NAME: 'linux'
|
|
|
+ BUILDARCH: ${{ matrix.arch }}
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v2
|
|
|
+
|
|
|
+ - name: Setup Node.js environment
|
|
|
+ uses: actions/setup-node@v1.4.3
|
|
|
+ with:
|
|
|
+ node-version: 12.14.1
|
|
|
+
|
|
|
+ - name: Clone VSCode repo
|
|
|
+ run: |
|
|
|
+ . get_repo.sh
|
|
|
+ echo "::set-env name=LATEST_MS_TAG::$LATEST_MS_TAG"
|
|
|
+ echo "::set-env name=LATEST_MS_COMMIT::$LATEST_MS_COMMIT"
|
|
|
+
|
|
|
+ - name: Check existing VSCodium tags/releases
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ run: |
|
|
|
+ . check_tags.sh
|
|
|
+ echo "::set-env name=SHOULD_BUILD::$SHOULD_BUILD"
|
|
|
+
|
|
|
+ - name: Install build deps
|
|
|
+ run: |
|
|
|
+ triplet=
|
|
|
+ case $BUILDARCH in
|
|
|
+ arm)
|
|
|
+ arch=armhf
|
|
|
+ triplet=arm-linux-gnueabihf
|
|
|
+ ;;
|
|
|
+
|
|
|
+ arm64)
|
|
|
+ arch=arm64
|
|
|
+ triplet=aarch64-linux-gnu
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ if [[ -n "$triplet" ]]; then
|
|
|
+ sed 's/^deb /deb [arch=amd64] '/g -i /etc/apt/sources.list
|
|
|
+ echo "deb [arch=$arch] http://ports.ubuntu.com/ubuntu-ports/ trusty main" | sudo tee -a /etc/apt/sources.list.d/$arch.list >/dev/null
|
|
|
+ sudo dpkg --add-architecture $arch
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install libc6-dev-$arch-cross gcc-$triplet g++-$triplet `apt-cache search x11proto | grep ^x11proto | cut -f 1 -d ' '` xz-utils pkg-config
|
|
|
+ mkdir -p dl
|
|
|
+ pushd dl
|
|
|
+ apt-get download libx11-dev:$arch libx11-6:$arch libxkbfile-dev:$arch libxkbfile1:$arch libxau-dev:$arch libxdmcp-dev:$arch libxcb1-dev:$arch libsecret-1-dev:$arch libsecret-1-0:$arch libpthread-stubs0-dev:$arch libglib2.0-dev:$arch libglib2.0-0:$arch libffi-dev:$arch libffi6:$arch zlib1g:$arch libpcre3-dev:$arch libpcre3:$arch
|
|
|
+ for i in *.deb; do ar x $i; sudo tar -C / -xf data.tar.*; rm -f data.tar.*; done
|
|
|
+ popd
|
|
|
+ echo "::set-env name=CC::/usr/bin/$triplet-gcc"
|
|
|
+ echo "::set-env name=CXX::/usr/bin/$triplet-g++"
|
|
|
+ echo "::set-env name=CC_host::/usr/bin/gcc"
|
|
|
+ echo "::set-env name=CXX_host::/usr/bin/g++"
|
|
|
+ echo "::set-env name=PKG_CONFIG_LIBDIR::/usr/lib/$triplet/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"
|
|
|
+ export CC=/usr/bin/$triplet-gcc
|
|
|
+ export CXX=/usr/bin/$triplet-g++
|
|
|
+ export CC_host=/usr/bin/gcc
|
|
|
+ export CXX_host=/usr/bin/g++
|
|
|
+ export PKG_CONFIG_LIBDIR=/usr/lib/$triplet/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
|
|
|
+ else
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install libx11-dev
|
|
|
+ fi
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+
|
|
|
+ - name: Build
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ npm_config_arch: ${{ matrix.arch }}
|
|
|
+ npm_config_target_arch: ${{ matrix.arch }}
|
|
|
+ run: ./build.sh
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+
|
|
|
+ - name: Zip release
|
|
|
+ run: |
|
|
|
+ cd VSCode-linux-${BUILDARCH}
|
|
|
+ tar czf ../VSCodium-linux-${BUILDARCH}-${LATEST_MS_TAG}.tar.gz .
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+
|
|
|
+ - name: Generate shasums
|
|
|
+ run: ./sum.sh
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+
|
|
|
+ - name: Release
|
|
|
+ uses: softprops/action-gh-release@v1
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+ with:
|
|
|
+ tag_name: ${{ env.LATEST_MS_TAG }}
|
|
|
+ files: |
|
|
|
+ ./*.sha256
|
|
|
+ ./*.zip
|
|
|
+ ./*.tar.gz
|
|
|
+ ./*.deb
|
|
|
+ ./*.rpm
|
|
|
+ ./*.AppImage
|
|
|
+ ./*.AppImage.zsync
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+
|
|
|
+ - name: Update versions repo
|
|
|
+ if: env.SHOULD_BUILD == 'yes'
|
|
|
+ run: ./update_version.sh
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
|
|
+ GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
|
+
|