name: CI # All builds use lhelper only for releases, # otherwise for normal builds dependencies are dynamically linked. on: push: branches: - '*' # tags: # - 'v[0-9]*' pull_request: branches: - '*' jobs: 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: config: - { name: "GCC", cc: gcc, cxx: g++ } - { name: "clang", cc: clang, cxx: clang++ } env: CC: ${{ matrix.config.cc }} CXX: ${{ matrix.config.cxx }} steps: - 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_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: 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: - 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