This change also properly fixes the double release creation issue due to the upload files process not sepcifying the draft flag. Also added update tag step so the tag gets updated to latest commit and is easier to kick new builds for pre releases without having to create a new release.
196 lines
6.8 KiB
YAML
196 lines
6.8 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v[0-9]+.*
|
|
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: Release Version
|
|
default: v2.1.0
|
|
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
|
|
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-$(uname -m)" >> "$GITHUB_ENV"
|
|
echo "INSTALL_NAME_ADDONS=lite-xl-${{ needs.release.outputs.version }}-addons-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
|
|
run: bash scripts/install-dependencies.sh --debug
|
|
- name: Build
|
|
run: |
|
|
bash --version
|
|
bash scripts/build.sh --bundle --debug --forcefallback --release
|
|
- name: Create DMG Image
|
|
run: |
|
|
bash scripts/package.sh --version ${INSTALL_REF} --debug --dmg --release
|
|
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
|