name: Release on: push: tags: - v[0-9]+.* workflow_dispatch: inputs: version: description: Release Version default: v2.1.1 required: true jobs: release: name: Create Release runs-on: ubuntu-18.04 outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} version: ${{ steps.tag.outputs.version }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Fetch Version id: tag run: | if [[ "${{ github.event.inputs.version }}" != "" ]]; then echo ::set-output name=version::${{ github.event.inputs.version }} else echo ::set-output name=version::${GITHUB_REF/refs\/tags\//} fi - name: Update Tag uses: richardsimko/update-tag@v1 with: tag_name: ${{ steps.tag.outputs.version }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Release id: create_release uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.version }} name: Lite XL ${{ steps.tag.outputs.version }} draft: true body_path: changelog.md generate_release_notes: true build_linux: name: Linux needs: release runs-on: ubuntu-18.04 env: CC: gcc CXX: g++ steps: - name: Set Environment Variables run: | echo "$HOME/.local/bin" >> "$GITHUB_PATH" echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV" - uses: actions/checkout@v2 - name: Python Setup uses: actions/setup-python@v2 with: python-version: 3.9 - name: Update Packages run: sudo apt-get update - name: Install Dependencies run: | bash scripts/install-dependencies.sh --debug sudo apt-get install -y ccache - name: Build Portable run: | bash --version bash scripts/build.sh --debug --forcefallback --portable --release - name: Package Portables run: | bash scripts/package.sh --version ${INSTALL_REF} --debug --binary --release bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --binary --release - name: Build AppImages run: | bash scripts/appimage.sh --debug --static --version ${INSTALL_REF} --release bash scripts/appimage.sh --debug --nobuild --addons --version ${INSTALL_REF} - name: Upload Files uses: softprops/action-gh-release@v1 with: tag_name: ${{ needs.release.outputs.version }} draft: true files: | lite-xl-${{ env.INSTALL_REF }}-linux-x86_64-portable.tar.gz lite-xl-${{ env.INSTALL_REF }}-addons-linux-x86_64-portable.tar.gz LiteXL-${{ env.INSTALL_REF }}-x86_64.AppImage LiteXL-${{ env.INSTALL_REF }}-addons-x86_64.AppImage build_macos: name: macOS (x86_64) needs: release runs-on: macos-11 strategy: matrix: arch: [x86_64, arm64] 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=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV" echo "INSTALL_NAME=lite-xl-${{ needs.release.outputs.version }}-macos-${{ matrix.arch }}" >> "$GITHUB_ENV" echo "INSTALL_NAME_ADDONS=lite-xl-${{ needs.release.outputs.version }}-addons-macos-${{ matrix.arch }}" >> "$GITHUB_ENV" - uses: actions/checkout@v2 - name: Python Setup uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install Dependencies run: bash scripts/install-dependencies.sh --debug - name: Build run: | bash --version CROSS_ARCH=${{ matrix.arch }} bash scripts/build.sh --bundle --debug --forcefallback --release - name: Create DMG Image run: | CROSS_ARCH=${{ matrix.arch }} bash scripts/package.sh --version ${INSTALL_REF} --debug --dmg --release CROSS_ARCH=${{ matrix.arch }} bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --dmg --release - name: Upload Files uses: softprops/action-gh-release@v1 with: tag_name: ${{ needs.release.outputs.version }} draft: true files: | ${{ env.INSTALL_NAME }}.dmg ${{ env.INSTALL_NAME_ADDONS }}.dmg build_windows_msys2: name: Windows needs: release 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: ${{ matrix.msystem }} update: true install: >- base-devel git zip - name: Set Environment Variables run: | echo "$HOME/.local/bin" >> "$GITHUB_PATH" echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV" if [[ "${MSYSTEM}" == "MINGW64" ]]; then echo "BUILD_ARCH=x86_64" >> "$GITHUB_ENV" echo "INSTALL_NAME=lite-xl-${{ needs.release.outputs.version }}-windows-x86_64" >> "$GITHUB_ENV" echo "INSTALL_NAME_ADDONS=lite-xl-${{ needs.release.outputs.version }}-addons-windows-x86_64" >> "$GITHUB_ENV" else echo "BUILD_ARCH=i686" >> "$GITHUB_ENV" echo "INSTALL_NAME=lite-xl-${{ needs.release.outputs.version }}-windows-i686" >> "$GITHUB_ENV" echo "INSTALL_NAME_ADDONS=lite-xl-${{ needs.release.outputs.version }}-addons-windows-i686" >> "$GITHUB_ENV" fi - name: Install Dependencies run: bash scripts/install-dependencies.sh --debug - name: Build run: | bash --version bash scripts/build.sh -U --debug --forcefallback --release - name: Package run: bash scripts/package.sh --version ${INSTALL_REF} --debug --binary --release - name: Build Installer run: bash scripts/innosetup/innosetup.sh --debug --version ${INSTALL_REF} - name: Package With Addons run: bash scripts/package.sh --version ${INSTALL_REF} --debug --addons --binary --release - name: Build Installer With Addons run: bash scripts/innosetup/innosetup.sh --debug --version ${INSTALL_REF} --addons - name: Upload Files uses: softprops/action-gh-release@v1 with: tag_name: ${{ needs.release.outputs.version }} draft: true files: | ${{ env.INSTALL_NAME }}.zip ${{ env.INSTALL_NAME_ADDONS }}.zip LiteXL-${{ env.INSTALL_REF }}-${{ env.BUILD_ARCH }}-setup.exe LiteXL-${{ env.INSTALL_REF }}-addons-${{ env.BUILD_ARCH }}-setup.exe