Skip to content

Reinsert column in minimal demo and some original options #44

Reinsert column in minimal demo and some original options

Reinsert column in minimal demo and some original options #44

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: Install VTV on GH Environment
on:
pull_request:
push:
workflow_dispatch:
env:
FPC_URL: 'gitlab'
FPC_BRANCH: 'release_3_2_2'
LAZ_URL: 'gitlab'
LAZ_REVISION: 'lazarus_3_0'
LAZ_DIR: 'fpcLaz'
FPCUP_OPT: '' #'--lazopt="-g -gl" --fpcopt="-g -gl"'
VTV_SOURCE: '${{ github.workspace }}/vtv_src'
LCLEXT_SOURCE: '${{ github.workspace }}/lclext_src'
jobs:
build:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-20.04, ubuntu-22.04]
build-widgetset: [win32, gtk2, gtk3, qt5, qt6]
include:
- os: windows-latest
fpcup-url: 'https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/releases/download/v2.2.0nf/fpclazup-x86_64-win64.exe'
lazbuild: 'fpcLaz/lazarus/lazbuild.exe'
- os: ubuntu-20.04
fpcup-url: 'https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/releases/download/v2.2.0nf/fpclazup-x86_64-linux'
lazbuild: 'fpcLaz/lazarus/lazbuild'
- os: ubuntu-22.04
fpcup-url: 'https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/releases/download/v2.2.0nf/fpclazup-x86_64-linux'
lazbuild: 'fpcLaz/lazarus/lazbuild'
exclude:
- os: ubuntu-20.04
build-widgetset: win32
- os: ubuntu-20.04
build-widgetset: qt6
- os: ubuntu-20.04
build-widgetset: gtk3
- os: windows-latest
build-widgetset: gtk2
- os: windows-latest
build-widgetset: gtk3
- os: ubuntu-22.04
build-widgetset: win32
- os: ubuntu-22.04
build-widgetset: gtk2
- os: ubuntu-22.04
build-widgetset: qt5
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
with:
submodules: true
path: '${{ env.VTV_SOURCE }}'
- uses: actions/checkout@v3
with:
repository: 'blikblum/luipack'
submodules: true
path: '${{ env.LCLEXT_SOURCE }}'
- name: Install Dependencies (Ubuntu)
if: contains( matrix.os, 'ubuntu') && matrix.build-widgetset == 'gtk2'
run: |
sudo apt-get update
sudo apt-get -m -y install libgtk2.0-dev libpango1.0-dev libffi-dev libxtst-dev xvfb
Xvfb :1 &
- name: Install Dependencies (Ubuntu - only GTK3)
if: contains( matrix.os, 'ubuntu') && matrix.build-widgetset == 'gtk3'
run: |
sudo apt-get update
sudo apt-get -m -y install libgtk-3-dev
- name: Install Dependencies (Ubuntu - only QT5)
if: contains( matrix.os, 'ubuntu') && matrix.build-widgetset == 'qt5'
run: |
wget https://github.com/davidbannon/libqt5pas/releases/download/v1.2.15/libqt5pas1_2.15-1_amd64.deb
wget https://github.com/davidbannon/libqt5pas/releases/download/v1.2.15/libqt5pas-dev_2.15-1_amd64.deb
sudo apt-get update
sudo apt-get -m -y install qt5-qmake qtbase5-dev qt5-default libqt5x11extras5-dev libxcb-keysyms1-dev
sudo apt-get -m -y install ./libqt5pas1_2.15-1_amd64.deb
sudo apt-get -m -y install ./libqt5pas-dev_2.15-1_amd64.deb
- name: Install Dependencies (Ubuntu - only QT6)
if: contains( matrix.os, 'ubuntu') && matrix.build-widgetset == 'qt6'
run: |
wget https://github.com/davidbannon/libqt6pas/releases/download/v6.2.7/libqt6pas6_6.2.7-1_amd64.deb
wget https://github.com/davidbannon/libqt6pas/releases/download/v6.2.7/libqt6pas6-dev_6.2.7-1_amd64.deb
sudo apt-get update
sudo apt-get -m -y install qt6-base-dev libxcb-keysyms1-dev libgl-dev qt6-base-private-dev
sudo apt-get -m -y install ./libqt6pas6_6.2.7-1_amd64.deb
sudo apt-get -m -y install ./libqt6pas6-dev_6.2.7-1_amd64.deb
- name: Generate Cache Hash
run: echo "${{ matrix.fpcup-url }}${{ env.FPCUP_OPT }}${{ env.FPC_URL }}${{ env.FPC_BRANCH }}${{ env.LAZ_URL }}${{ env.LAZ_REVISION }}" > .cache
- name: Cache
id: cache
uses: actions/cache@v3.0.11
env:
cache-name: cache-laz-v0.1.1
with:
path: |
${{ env.LAZ_DIR }}
key: ${{ runner.os }}-${{ env.cache-name }}_${{ matrix.build-widgetset }}-${{ hashFiles('.cache') }}
- name: Install Lazarus
if: steps.cache.outputs.cache-hit != 'true'
run: |
curl --retry 5 -L -o fpcup ${{ matrix.fpcup-url }}
chmod +x fpcup
mkdir ${{ env.LAZ_DIR }}
./fpcup --installdir=${{ env.LAZ_DIR }} --fpcURL=${{ env.FPC_URL }} --fpcBranch=${{ env.FPC_BRANCH }} --lazURL=${{ env.LAZ_URL }} --lazRevision=${{ env.LAZ_REVISION }} ${{ env.FPCUP_OPT }} --only=docker --noconfirm --verbose
- name: Install packages
run: |
${{ matrix.lazbuild }} --add-package-link "${{ env.LCLEXT_SOURCE }}/lclextensions/lclextensions_package.lpk" --skip-dependencies
${{ matrix.lazbuild }} --add-package "${{ env.VTV_SOURCE }}/Packages/Lazarus/virtualtreeview_package.lpk" --skip-dependencies
- name: Build Lazarus
run: |
${{ matrix.lazbuild }} --ws=${{ matrix.build-widgetset }} --build-ide=
- name: Build Demo projects (only windows)
if: contains( matrix.os, 'windows')
run: |
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/OLE/ole.lpi" --widgetset=${{ matrix.build-widgetset }}
- name: Build Demo projects
run: |
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/Advanced/Advanced.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/dataarray/dataarray.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/dragdrop/vtvdragdrop.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/images/images.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/Minimal/minimal_lcl.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/Objects/mvcdemo.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/unicode/unicode.lpi" --widgetset=${{ matrix.build-widgetset }}
${{ matrix.lazbuild }} "${{ env.VTV_SOURCE }}/Demos/vtbasic/vtbasic.lpi" --widgetset=${{ matrix.build-widgetset }}
- name: Validate Cache
if: steps.cache.outputs.cache-hit == 'true'
run: ${{ matrix.lazbuild }} --version && echo "success=true" >> $GITHUB_OUTPUT || echo "success=false" >> $GITHUB_OUTPUT
- name: Upload the Build Artifact
uses: actions/upload-artifact@v3.1.1
with:
name: demos_${{ matrix.build-widgetset }}
path: |
${{ env.VTV_SOURCE }}/Demos/**/*.exe