aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build.yml275
1 files changed, 232 insertions, 43 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c4bf3358..2778de79 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,11 +1,44 @@
name: CI
+# All builds use lhelper only for releases,
+# otherwise for normal builds dependencies are dynamically linked.
+
on:
- workflow_dispatch:
+ push:
+ branches:
+ - '*'
+# tags:
+# - 'v[0-9]*'
+ pull_request:
+ branches:
+ - '*'
jobs:
- build-linux:
- name: Build Linux
+ archive_source_code:
+ name: Source Code Tarball
+ runs-on: ubuntu-18.04
+ # Only on tags/releases
+ if: startsWith(github.ref, 'refs/tags/')
+ steps:
+ - uses: actions/checkout@v2
+ - name: Python Setup
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.6
+ - name: Install Dependencies
+ run: |
+ sudo apt-get install -qq ninja-build
+ pip3 install meson
+ - name: Package
+ shell: bash
+ run: bash scripts/package.sh --version ${GITHUB_REF##*/} --debug --source
+ - uses: actions/upload-artifact@v2
+ with:
+ name: Source Code Tarball
+ path: "lite-xl-*-src.tar.gz"
+
+ build_linux:
+ name: Linux
runs-on: ubuntu-18.04
strategy:
matrix:
@@ -16,48 +49,204 @@ jobs:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
steps:
- - uses: actions/checkout@v2
- - name: Set up Python
- uses: actions/setup-python@v2
- with:
- python-version: 3.6
- - name: Install dependencies
- run: |
- sudo apt-get install -qq libsdl2-dev libfreetype6 ninja-build
- pip3 install meson
- - name: Build package
- run: bash build-packages.sh x86-64
- - name: upload packages
- uses: actions/upload-artifact@v2
- with:
- name: Ubuntu Package
- path: lite-xl-linux-*.tar.gz
+ - name: Set Environment Variables
+ if: ${{ matrix.config.cc == 'gcc' }}
+ run: |
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
+ echo "INSTALL_REF=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
+ echo "INSTALL_NAME=lite-xl-${GITHUB_REF##*/}-linux-$(uname -m)" >> "$GITHUB_ENV"
+ - uses: actions/checkout@v2
+ - name: Python Setup
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.6
+ - name: Update Packages
+ run: sudo apt-get update
+ - name: Install Dependencies
+ if: ${{ !startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/install-dependencies.sh --debug
+ - name: Install Release Dependencies
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: |
+ bash scripts/install-dependencies.sh --debug --lhelper
+ bash scripts/lhelper.sh --debug
+ - name: Build
+ run: |
+ bash --version
+ bash scripts/build.sh --debug --forcefallback
+ - name: Package
+ if: ${{ matrix.config.cc == 'gcc' }}
+ run: bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --binary
+ - name: AppImage
+ if: ${{ matrix.config.cc == 'gcc' && startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/appimage.sh --nobuild --version ${INSTALL_REF}
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v2
+ if: ${{ matrix.config.cc == 'gcc' }}
+ with:
+ name: Linux Artifacts
+ path: |
+ ${{ env.INSTALL_NAME }}.tar.gz
+ LiteXL-${{ env.INSTALL_REF }}-x86_64.AppImage
- build-macox:
- name: Build Mac OS X
+ build_macos:
+ name: macOS (x86_64)
runs-on: macos-10.15
+ env:
+ CC: clang
+ CXX: clang++
+ steps:
+ - name: System Information
+ run: |
+ system_profiler SPSoftwareDataType
+ bash --version
+ gcc -v
+ xcodebuild -version
+ - name: Set Environment Variables
+ run: |
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
+ echo "INSTALL_REF=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
+ echo "INSTALL_NAME=lite-xl-${GITHUB_REF##*/}-macos-$(uname -m)" >> "$GITHUB_ENV"
+ - uses: actions/checkout@v2
+ - name: Python Setup
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Dependencies
+ if: ${{ !startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/install-dependencies.sh --debug
+ - name: Install Release Dependencies
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: |
+ bash scripts/install-dependencies.sh --debug --lhelper
+ bash scripts/lhelper.sh --debug
+ - name: Build
+ run: |
+ bash --version
+ bash scripts/build.sh --bundle --debug --forcefallback
+ - name: Error Logs
+ if: failure()
+ run: |
+ mkdir ${INSTALL_NAME}
+ cp /usr/var/lhenv/lite-xl/logs/* ${INSTALL_NAME}
+ tar czvf ${INSTALL_NAME}.tar.gz ${INSTALL_NAME}
+# - name: Package
+# if: ${{ !startsWith(github.ref, 'refs/tags/') }}
+# run: bash scripts/package.sh --version ${INSTALL_REF} --debug --addons
+ - name: Create DMG Image
+ run: bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --dmg
+ - name: Upload DMG Image
+ uses: actions/upload-artifact@v2
+ with:
+ name: macOS DMG Image
+ path: ${{ env.INSTALL_NAME }}.dmg
+ - name: Upload Error Logs
+ uses: actions/upload-artifact@v2
+ if: failure()
+ with:
+ name: Error Logs
+ path: ${{ env.INSTALL_NAME }}.tar.gz
+
+ build_windows_msys2:
+ name: Windows
+ runs-on: windows-2019
strategy:
matrix:
- config:
- # - { name: "GCC", cc: gcc-10, cxx: g++-10 }
- - { name: "clang", cc: clang, cxx: clang++ }
- env:
- CC: ${{ matrix.config.cc }}
- CXX: ${{ matrix.config.cxx }}
+ msystem: [MINGW32, MINGW64]
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - uses: actions/checkout@v2
+ - uses: msys2/setup-msys2@v2
+ with:
+ #msystem: MINGW64
+ msystem: ${{ matrix.msystem }}
+ update: true
+ install: >-
+ base-devel
+ git
+ zip
+ - name: Set Environment Variables
+ run: |
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
+ echo "INSTALL_NAME=lite-xl-${GITHUB_REF##*/}-windows-$(uname -m)" >> "$GITHUB_ENV"
+ echo "INSTALL_REF=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
+ - name: Install Dependencies
+ if: ${{ !startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/install-dependencies.sh --debug
+ - name: Install Release Dependencies
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/install-dependencies.sh --debug --lhelper
+ - name: Build
+ run: |
+ bash --version
+ bash scripts/build.sh --debug --forcefallback
+ - name: Error Logs
+ if: failure()
+ run: |
+ mkdir ${INSTALL_NAME}
+ cp /usr/var/lhenv/lite-xl/logs/* ${INSTALL_NAME}
+ tar czvf ${INSTALL_NAME}.tar.gz ${INSTALL_NAME}
+ - name: Package
+ run: bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --binary
+ - name: Build Installer
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: bash scripts/innosetup/innosetup.sh --debug
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: Windows Artifacts
+ path: |
+ LiteXL*.exe
+ ${{ env.INSTALL_NAME }}.zip
+ - name: Upload Error Logs
+ uses: actions/upload-artifact@v2
+ if: failure()
+ with:
+ name: Error Logs
+ path: ${{ env.INSTALL_NAME }}.tar.gz
+
+ deploy:
+ name: Deployment
+ runs-on: ubuntu-18.04
+# if: startsWith(github.ref, 'refs/tags/')
+ if: false
+ needs:
+ - archive_source_code
+ - build_linux
+ - build_macos
+ - build_windows_msys2
steps:
- - uses: actions/checkout@v2
- - name: Set up Python
- uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: Install dependencies
- run: |
- pip3 install meson
- brew install ninja sdl2
- - name: Build package
- run: bash build-packages.sh x86-64
- - name: upload packages
- uses: actions/upload-artifact@v2
- with:
- name: Mac OS X Package
- path: lite-xl-macosx-*.zip
+ - name: Set Environment Variables
+ run: echo "INSTALL_REF=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
+ - uses: actions/download-artifact@v2
+ with:
+ name: Linux Artifacts
+ - uses: actions/download-artifact@v2
+ with:
+ name: macOS DMG Image
+ - uses: actions/download-artifact@v2
+ with:
+ name: Source Code Tarball
+ - uses: actions/download-artifact@v2
+ with:
+ name: Windows Artifacts
+ - name: Display File Information
+ shell: bash
+ run: ls -lR
+ # Note: not using `actions/create-release@v1`
+ # because it cannot update an existing release
+ # see https://github.com/actions/create-release/issues/29
+ - uses: softprops/action-gh-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ env.INSTALL_REF }}
+ name: Release ${{ env.INSTALL_REF }}
+ draft: false
+ prerelease: false
+ files: |
+ lite-xl-${{ env.INSTALL_REF }}-*
+ LiteXL*.AppImage
+ LiteXL*.exe