Browse Source

add github-actions

Artem V. Ageev 8 months ago
parent
commit
875ab56b37
100 changed files with 198 additions and 0 deletions
  1. 7 0
      .github/dependabot.yml
  2. 39 0
      .github/workflows/make.yml
  3. 3 0
      .gitmodules
  4. 90 0
      make.ps1
  5. 59 0
      make.sh
  6. 0 0
      src/TurboBird.ico
  7. 0 0
      src/TurboBird.lpi
  8. 0 0
      src/TurboBird.lpr
  9. 0 0
      src/TurboBird.lps
  10. 0 0
      src/TurboBird.lrs
  11. 0 0
      src/TurboBird.png
  12. 0 0
      src/TurboBird.rc
  13. 0 0
      src/TurboBird.res
  14. 0 0
      src/about.lfm
  15. 0 0
      src/about.lrs
  16. 0 0
      src/about.pas
  17. 0 0
      src/backuprestore.lfm
  18. 0 0
      src/backuprestore.lrs
  19. 0 0
      src/backuprestore.pas
  20. 0 0
      src/calen.lfm
  21. 0 0
      src/calen.lrs
  22. 0 0
      src/calen.pas
  23. 0 0
      src/callproc.lfm
  24. 0 0
      src/callproc.lrs
  25. 0 0
      src/callproc.pas
  26. 0 0
      src/changepass.lfm
  27. 0 0
      src/changepass.lrs
  28. 0 0
      src/changepass.pas
  29. 0 0
      src/comparison.lfm
  30. 0 0
      src/comparison.pas
  31. 0 0
      src/connectas.lfm
  32. 0 0
      src/connectas.lrs
  33. 0 0
      src/connectas.pas
  34. 0 0
      src/copytable.lfm
  35. 0 0
      src/copytable.lrs
  36. 0 0
      src/copytable.pas
  37. 0 0
      src/createdb.lfm
  38. 0 0
      src/createdb.lrs
  39. 0 0
      src/createdb.pas
  40. 0 0
      src/createtrigger.lfm
  41. 0 0
      src/createtrigger.lrs
  42. 0 0
      src/createtrigger.pas
  43. 0 0
      src/createuser.lfm
  44. 0 0
      src/createuser.lrs
  45. 0 0
      src/createuser.pas
  46. 0 0
      src/csvdocument.pas
  47. 0 0
      src/dbinfo.lfm
  48. 0 0
      src/dbinfo.pas
  49. 0 0
      src/editdatafullrec.lfm
  50. 0 0
      src/editdatafullrec.lrs
  51. 0 0
      src/editdatafullrec.pas
  52. 0 0
      src/edittable.lfm
  53. 0 0
      src/edittable.lrs
  54. 0 0
      src/edittable.pas
  55. 0 0
      src/enterpass.lfm
  56. 0 0
      src/enterpass.lrs
  57. 0 0
      src/enterpass.pas
  58. 0 0
      src/fileimport.pas
  59. 0 0
      src/importtable.lfm
  60. 0 0
      src/importtable.lrs
  61. 0 0
      src/importtable.pas
  62. 0 0
      src/main.lfm
  63. 0 0
      src/main.lrs
  64. 0 0
      src/main.pas
  65. 0 0
      src/newconstraint.lfm
  66. 0 0
      src/newconstraint.lrs
  67. 0 0
      src/newconstraint.pas
  68. 0 0
      src/newdomain.lfm
  69. 0 0
      src/newdomain.lrs
  70. 0 0
      src/newdomain.pas
  71. 0 0
      src/neweditfield.lfm
  72. 0 0
      src/neweditfield.lrs
  73. 0 0
      src/neweditfield.pas
  74. 0 0
      src/newgen.lfm
  75. 0 0
      src/newgen.lrs
  76. 0 0
      src/newgen.pas
  77. 0 0
      src/newtable.lfm
  78. 0 0
      src/newtable.lrs
  79. 0 0
      src/newtable.pas
  80. 0 0
      src/permissionmanage.lfm
  81. 0 0
      src/permissionmanage.lrs
  82. 0 0
      src/permissionmanage.pas
  83. 0 0
      src/querycompletion.txt
  84. 0 0
      src/querywindow.lfm
  85. 0 0
      src/querywindow.lrs
  86. 0 0
      src/querywindow.pas
  87. 0 0
      src/reg.lfm
  88. 0 0
      src/reg.lrs
  89. 0 0
      src/reg.pas
  90. 0 0
      src/scriptdb.pas
  91. 0 0
      src/sqlhistory.lfm
  92. 0 0
      src/sqlhistory.lrs
  93. 0 0
      src/sqlhistory.pas
  94. 0 0
      src/systables.lfm
  95. 0 0
      src/systables.lrs
  96. 0 0
      src/systables.pas
  97. 0 0
      src/tablemanage.lfm
  98. 0 0
      src/tablemanage.lrs
  99. 0 0
      src/tablemanage.pas
  100. 0 0
      src/topologicalsort.pas

+ 7 - 0
.github/dependabot.yml

@@ -0,0 +1,7 @@
+---
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "weekly"

+ 39 - 0
.github/workflows/make.yml

@@ -0,0 +1,39 @@
+---
+name: Make
+
+on:
+  push:
+    branches:
+      - "**"
+  pull_request:
+    branches:
+      - master
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  build:
+    runs-on: ${{ matrix.os }}
+    timeout-minutes: 120
+    strategy:
+      matrix:
+        os:
+          - ubuntu-latest
+          - windows-latest
+    steps:
+    - name: Checkout
+      uses: actions/checkout@v4
+      with:
+        submodules: true
+
+    - name: Build on Linux
+      if: runner.os == 'Linux'
+      shell: bash
+      run: bash -x make.sh build
+
+    - name: Build on Windows
+      if: runner.os == 'Windows'
+      shell: powershell
+      run: pwsh -File make.ps1 build

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "use/synapse"]
+	path = use/synapse
+	url = https://github.com/geby/synapse.git

+ 90 - 0
make.ps1

@@ -0,0 +1,90 @@
+#!/usr/bin/env pwsh
+##############################################################################################################
+
+Function Show-Usage {
+    Return "
+Usage: pwsh -File $($PSCommandPath) [OPTIONS]
+Options:
+    build   Build program
+"
+}
+
+Function Request-File {
+    ForEach ($REPLY in $args) {
+        $params = @{
+            Uri = $REPLY
+            OutFile = (Split-Path -Path $REPLY -Leaf).Split('?')[0]
+        }
+        Invoke-WebRequest @params | Out-Null
+        Return $params.OutFile
+    }
+}
+
+Function Install-Program {
+    While ($Input.MoveNext()) {
+        Switch ((Split-Path -Path $Input.Current -Leaf).Split('.')[-1]) {
+            'msi' {
+                & msiexec /passive /package $Input.Current | Out-Host
+            }
+            'exe' {
+                & ".\$($Input.Current)" /SP- /VERYSILENT /SUPPRESSMSGBOXES /NORESTART | Out-Host
+            }
+        }
+        Remove-Item $Input.Current
+    }
+}
+
+Function Build-Project {
+    $VAR = @{
+        Cmd = 'lazbuild'
+        Url = 'https://netix.dl.sourceforge.net/project/lazarus/Lazarus%20Windows%2064%20bits/Lazarus%203.6/lazarus-3.6-fpc-3.2.2-win64.exe?viasf=1'
+        Path = "C:\Lazarus"
+    }
+    Try {
+        Get-Command $VAR.Cmd
+    } Catch {
+        Request-File $VAR.Url | Install-Program
+        $env:PATH+=";$($VAR.Path)"
+        Get-Command $VAR.Cmd
+    }
+    If ( Test-Path -Path 'use\components.txt' ) {
+        & git submodule update --recursive --init | Out-Host
+        & git submodule update --recursive --remote | Out-Host
+        Get-Content -Path 'use\components.txt' | ForEach-Object {
+            If ((! (& lazbuild --verbose-pkgsearch $_)) &&
+                (! (& lazbuild --add-package $_)) &&
+                (! (Test-Path -Path "use\$($_)"))) {
+                    $OutFile = Request-File "https://packages.lazarus-ide.org/$($_).zip"
+                    Expand-Archive -Path $OutFile -DestinationPath "use\$($_)" -Force
+                    Remove-Item $OutFile
+                }
+        }
+        Get-ChildItem -Filter '*.lpk' -Recurse -File –Path 'use' | ForEach-Object {
+            & lazbuild --add-package-link $_ | Out-Host
+        }
+    }
+    Get-ChildItem -Filter '*.lpi' -Recurse -File –Path 'src' | ForEach-Object {
+        & lazbuild --no-write-project --recursive --build-mode=release $_ | Out-Host
+    }
+}
+
+Function Switch-Action {
+    $ErrorActionPreference = 'stop'
+    Set-PSDebug -Strict -Trace 1
+    Invoke-ScriptAnalyzer -EnableExit -Path $PSCommandPath
+    If ($args.count -gt 0) {
+        Switch ($args[0]) {
+            'build' {
+                Build-Project
+            }
+            Default {
+                Show-Usage
+            }
+        }
+    } Else {
+        Show-Usage
+    }
+}
+
+##############################################################################################################
+Switch-Action @args

+ 59 - 0
make.sh

@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+
+function priv_clippit
+(
+    cat <<EOF
+Usage: bash ${0} [OPTIONS]
+Options:
+    build   Build program
+EOF
+)
+
+function priv_lazbuild
+(
+    if ! (which lazbuild); then
+        source '/etc/os-release'
+        case ${ID:?} in
+            debian | ubuntu)
+                sudo apt-get update
+                sudo apt-get install -y lazarus
+                ;;
+        esac
+    fi
+    if [[ -f 'use/components.txt' ]]; then
+        git submodule update --init --recursive
+        git submodule update --recursive --remote
+        while read -r; do
+            if [[ -n "${REPLY}" ]] &&
+                ! (lazbuild --verbose-pkgsearch "${REPLY}") &&
+                ! (lazbuild --add-package "${REPLY}") &&
+                ! [[ -e "use/${REPLY}" ]]; then
+                    declare -A VAR=(
+                        [url]="https://packages.lazarus-ide.org/${REPLY}.zip"
+                        [out]=$(mktemp)
+                    )
+                    wget --output-document "${VAR[out]}" "${VAR[url]}" 2>/dev/null
+                    unzip -o "${VAR[out]}" -d "use/${REPLY}"
+                    rm --verbose "${VAR[out]}"
+                fi
+        done < 'use/components.txt'
+        find 'use' -type 'f' -name '*.lpk' -exec lazbuild --add-package-link {} +
+    fi
+    find 'src' -type 'f' -name '*.lpi' \
+        -exec lazbuild --no-write-project --recursive --no-write-project --build-mode=release {} + 1>&2
+)
+
+function priv_main
+(
+    set -euo pipefail
+    if ((${#})); then
+        case ${1} in
+            build) priv_lazbuild ;;
+            *) priv_clippit ;;
+        esac
+    else
+        priv_clippit
+    fi
+)
+
+priv_main "${@}" >/dev/null

+ 0 - 0
TurboBird.ico → src/TurboBird.ico


+ 0 - 0
TurboBird.lpi → src/TurboBird.lpi


+ 0 - 0
TurboBird.lpr → src/TurboBird.lpr


+ 0 - 0
TurboBird.lps → src/TurboBird.lps


+ 0 - 0
TurboBird.lrs → src/TurboBird.lrs


+ 0 - 0
TurboBird.png → src/TurboBird.png


+ 0 - 0
TurboBird.rc → src/TurboBird.rc


+ 0 - 0
TurboBird.res → src/TurboBird.res


+ 0 - 0
about.lfm → src/about.lfm


+ 0 - 0
about.lrs → src/about.lrs


+ 0 - 0
about.pas → src/about.pas


+ 0 - 0
backuprestore.lfm → src/backuprestore.lfm


+ 0 - 0
backuprestore.lrs → src/backuprestore.lrs


+ 0 - 0
backuprestore.pas → src/backuprestore.pas


+ 0 - 0
calen.lfm → src/calen.lfm


+ 0 - 0
calen.lrs → src/calen.lrs


+ 0 - 0
calen.pas → src/calen.pas


+ 0 - 0
callproc.lfm → src/callproc.lfm


+ 0 - 0
callproc.lrs → src/callproc.lrs


+ 0 - 0
callproc.pas → src/callproc.pas


+ 0 - 0
changepass.lfm → src/changepass.lfm


+ 0 - 0
changepass.lrs → src/changepass.lrs


+ 0 - 0
changepass.pas → src/changepass.pas


+ 0 - 0
comparison.lfm → src/comparison.lfm


+ 0 - 0
comparison.pas → src/comparison.pas


+ 0 - 0
connectas.lfm → src/connectas.lfm


+ 0 - 0
connectas.lrs → src/connectas.lrs


+ 0 - 0
connectas.pas → src/connectas.pas


+ 0 - 0
copytable.lfm → src/copytable.lfm


+ 0 - 0
copytable.lrs → src/copytable.lrs


+ 0 - 0
copytable.pas → src/copytable.pas


+ 0 - 0
createdb.lfm → src/createdb.lfm


+ 0 - 0
createdb.lrs → src/createdb.lrs


+ 0 - 0
createdb.pas → src/createdb.pas


+ 0 - 0
createtrigger.lfm → src/createtrigger.lfm


+ 0 - 0
createtrigger.lrs → src/createtrigger.lrs


+ 0 - 0
createtrigger.pas → src/createtrigger.pas


+ 0 - 0
createuser.lfm → src/createuser.lfm


+ 0 - 0
createuser.lrs → src/createuser.lrs


+ 0 - 0
createuser.pas → src/createuser.pas


+ 0 - 0
csvdocument.pas → src/csvdocument.pas


+ 0 - 0
dbinfo.lfm → src/dbinfo.lfm


+ 0 - 0
dbinfo.pas → src/dbinfo.pas


+ 0 - 0
editdatafullrec.lfm → src/editdatafullrec.lfm


+ 0 - 0
editdatafullrec.lrs → src/editdatafullrec.lrs


+ 0 - 0
editdatafullrec.pas → src/editdatafullrec.pas


+ 0 - 0
edittable.lfm → src/edittable.lfm


+ 0 - 0
edittable.lrs → src/edittable.lrs


+ 0 - 0
edittable.pas → src/edittable.pas


+ 0 - 0
enterpass.lfm → src/enterpass.lfm


+ 0 - 0
enterpass.lrs → src/enterpass.lrs


+ 0 - 0
enterpass.pas → src/enterpass.pas


+ 0 - 0
fileimport.pas → src/fileimport.pas


+ 0 - 0
importtable.lfm → src/importtable.lfm


+ 0 - 0
importtable.lrs → src/importtable.lrs


+ 0 - 0
importtable.pas → src/importtable.pas


+ 0 - 0
main.lfm → src/main.lfm


+ 0 - 0
main.lrs → src/main.lrs


+ 0 - 0
main.pas → src/main.pas


+ 0 - 0
newconstraint.lfm → src/newconstraint.lfm


+ 0 - 0
newconstraint.lrs → src/newconstraint.lrs


+ 0 - 0
newconstraint.pas → src/newconstraint.pas


+ 0 - 0
newdomain.lfm → src/newdomain.lfm


+ 0 - 0
newdomain.lrs → src/newdomain.lrs


+ 0 - 0
newdomain.pas → src/newdomain.pas


+ 0 - 0
neweditfield.lfm → src/neweditfield.lfm


+ 0 - 0
neweditfield.lrs → src/neweditfield.lrs


+ 0 - 0
neweditfield.pas → src/neweditfield.pas


+ 0 - 0
newgen.lfm → src/newgen.lfm


+ 0 - 0
newgen.lrs → src/newgen.lrs


+ 0 - 0
newgen.pas → src/newgen.pas


+ 0 - 0
newtable.lfm → src/newtable.lfm


+ 0 - 0
newtable.lrs → src/newtable.lrs


+ 0 - 0
newtable.pas → src/newtable.pas


+ 0 - 0
permissionmanage.lfm → src/permissionmanage.lfm


+ 0 - 0
permissionmanage.lrs → src/permissionmanage.lrs


+ 0 - 0
permissionmanage.pas → src/permissionmanage.pas


+ 0 - 0
querycompletion.txt → src/querycompletion.txt


+ 0 - 0
querywindow.lfm → src/querywindow.lfm


+ 0 - 0
querywindow.lrs → src/querywindow.lrs


+ 0 - 0
querywindow.pas → src/querywindow.pas


+ 0 - 0
reg.lfm → src/reg.lfm


+ 0 - 0
reg.lrs → src/reg.lrs


+ 0 - 0
reg.pas → src/reg.pas


+ 0 - 0
scriptdb.pas → src/scriptdb.pas


+ 0 - 0
sqlhistory.lfm → src/sqlhistory.lfm


+ 0 - 0
sqlhistory.lrs → src/sqlhistory.lrs


+ 0 - 0
sqlhistory.pas → src/sqlhistory.pas


+ 0 - 0
systables.lfm → src/systables.lfm


+ 0 - 0
systables.lrs → src/systables.lrs


+ 0 - 0
systables.pas → src/systables.pas


+ 0 - 0
tablemanage.lfm → src/tablemanage.lfm


+ 0 - 0
tablemanage.lrs → src/tablemanage.lrs


+ 0 - 0
tablemanage.pas → src/tablemanage.pas


+ 0 - 0
topologicalsort.pas → src/topologicalsort.pas


Some files were not shown because too many files changed in this diff