From b0c8f05f3886d944c58ba57206693409be23bdcd Mon Sep 17 00:00:00 2001 From: kaltokri Date: Fri, 27 Oct 2023 17:01:51 +0200 Subject: [PATCH] Build optimization - Remove appveyor - Added docker compose for building docs locally - Added manuall run of GitHub Action builds - Added paths to trigger builds --- .appveyor/appveyor.yml | 87 ---------------------- .gitattributes | 4 + .github/workflows/build-docs.yml | 9 +++ .github/workflows/build-includes.yml | 7 ++ docker/moose-build-docs/Dockerfile | 13 ++++ docker/moose-build-docs/docker-compose.yml | 14 ++++ docker/moose-build-docs/start.sh | 24 ++++++ 7 files changed, 71 insertions(+), 87 deletions(-) delete mode 100644 .appveyor/appveyor.yml create mode 100644 docker/moose-build-docs/Dockerfile create mode 100644 docker/moose-build-docs/docker-compose.yml create mode 100644 docker/moose-build-docs/start.sh diff --git a/.appveyor/appveyor.yml b/.appveyor/appveyor.yml deleted file mode 100644 index 2af7fd529..000000000 --- a/.appveyor/appveyor.yml +++ /dev/null @@ -1,87 +0,0 @@ -version: 2.4.a.{build} -shallow_clone: true -skip_branch_with_pr: false -skip_commits: - message: /!nobuild/ -skip_tags: false - -environment: - access_token_documentation: - secure: JVBVVL8uJUcLXN+48eRdELEeCGOGCCaMzCqutsUqNuaZ/KblG5ZTt7+LV4UKv/0f - LUAROCKS_VER: 2.4.1 - LUA_VER: 5.1.5 - LUA: lua5.3 - matrix: - - LUA_VER: 5.1.5 - -platform: - - x64 - - -init: - - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` - https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` - Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` - throw "There are newer queued builds for this pull request, failing early." } -# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - -install: - - cmd: -# Outcomment if lua environment invalidates and needs to be reinstalled, otherwise all will run from the cache. - call choco install 7zip.commandline - call choco install lua51 - call choco install luarocks - call refreshenv - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" - cmd: PATH = %PATH%;C:\ProgramData\chocolatey\lib\luarocks\luarocks-2.4.3-win32\systree\bin - cmd: set LUA_PATH = %LUA_PATH%;C:\ProgramData\chocolatey\lib\luarocks\luarocks-2.4.3-win32\systree\share\lua\5.1\?.lua;C:\ProgramData\chocolatey\lib\luarocks\luarocks-2.4.3-win32\systree\share\lua\5.1\?\init.lua - cmd: set LUA_CPATH = %LUA_CPATH%;C:\ProgramData\chocolatey\lib\luarocks\luarocks-2.4.3-win32\systree\lib\lua\5.1\?.dll - call luarocks install luasrcdiet - call luarocks install checks - call luarocks install luadocumentor - call luarocks install luacheck - - -cache: -C:\ProgramData\chocolatey\lib -C:\ProgramData\chocolatey\bin - - - -build_script: - - ps: | - if( $env:appveyor_repo_branch -eq 'master' -or $env:appveyor_repo_branch -eq 'develop' ) - { - echo "Hello World!" - $apiUrl = 'https://ci.appveyor.com/api' - $token = 'v2.6hcv3ige78kg3yvg4ge8' - $headers = @{ - "Authorization" = "Bearer $token" - "Content-type" = "application/json" - } - $RequestBody = @{ accountName = 'FlightControl-Master'; projectSlug = 'moose-include'; branch = "$env:appveyor_repo_branch"; environmentVariables = @{} } | ConvertTo-Json - # Generate the new version ... - $project = Invoke-RestMethod -method Post -Uri "$apiUrl/builds" -Headers $headers -Body $RequestBody - } - - ps: | - if( $env:appveyor_repo_branch -eq 'master' -or $env:appveyor_repo_branch -eq 'develop' ) - { - $apiUrl = 'https://ci.appveyor.com/api' - $token = 'v2.6hcv3ige78kg3yvg4ge8' - $headers = @{ - "Authorization" = "Bearer $token" - "Content-type" = "application/json" - } - $RequestBody = @{ accountName = 'FlightControl-Master'; projectSlug = 'moose-docs'; branch = "$env:appveyor_repo_branch"; environmentVariables = @{} } | ConvertTo-Json - # get project with last build details - $project = Invoke-RestMethod -method Post -Uri "$apiUrl/builds" -Headers $headers -Body $RequestBody - } - - -test: off -# test_script: -# - cmd: luacheck "Moose Development\Moose\moose.lua" "Moose Mission Setup\moose.lua" - - -on_finish: -# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) diff --git a/.gitattributes b/.gitattributes index bdb0cabc8..2e755a77c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,3 +15,7 @@ *.PDF diff=astextplain *.rtf diff=astextplain *.RTF diff=astextplain + +# Avoid Windows line endings on shell scripts +# Needed for dockerfile builds +*.sh text eol=lf diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 4a7bc1f8c..5769e409b 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -5,6 +5,15 @@ on: branches: - master - develop + paths: + - 'Moose Setup/**/*.lua' + - 'Moose Development/**/*.lua' + - 'Moose Development/**/*.py' + - 'Moose Development/**/*.html' + - '.github/workflows/build-docs.yml' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: jobs: Build: diff --git a/.github/workflows/build-includes.yml b/.github/workflows/build-includes.yml index 04def15d3..4bd22bdbe 100644 --- a/.github/workflows/build-includes.yml +++ b/.github/workflows/build-includes.yml @@ -5,6 +5,13 @@ on: branches: - master - develop + paths: + - 'Moose Setup/**/*.lua' + - 'Moose Development/**/*.lua' + - '.github/workflows/build-includes.yml' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: jobs: Build: diff --git a/docker/moose-build-docs/Dockerfile b/docker/moose-build-docs/Dockerfile new file mode 100644 index 000000000..839828c60 --- /dev/null +++ b/docker/moose-build-docs/Dockerfile @@ -0,0 +1,13 @@ +FROM nickblah/lua:5.1.5-luarocks-ubuntu + +RUN apt-get -qq update +RUN apt-get -qq install tree +RUN apt-get -qq install build-essential +RUN apt-get -qq install git +RUN luarocks install markdown 0.32-2 +RUN luarocks install penlight 1.11.0-1 +RUN luarocks install metalua-compiler 0.7.3-1 +RUN luarocks install metalua-parser 0.7.3-2 +RUN luarocks install checks +COPY start.sh /start.sh +RUN chmod +x /start.sh \ No newline at end of file diff --git a/docker/moose-build-docs/docker-compose.yml b/docker/moose-build-docs/docker-compose.yml new file mode 100644 index 000000000..8ca5680e4 --- /dev/null +++ b/docker/moose-build-docs/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.5" + +services: + lua: + image: moose/build-docs + build: + context: . + dockerfile: Dockerfile + container_name: moose-build-docs + volumes: + - ../../:/moose + stdin_open: true + tty: true + command: /bin/bash -c /start.sh diff --git a/docker/moose-build-docs/start.sh b/docker/moose-build-docs/start.sh new file mode 100644 index 000000000..4773540be --- /dev/null +++ b/docker/moose-build-docs/start.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# Prepare environment +cd /moose/ +mkdir -p build/tools +mkdir -p build/doc + +# Checkout luadocumentor +cd /moose/build/tools +if [ ! -f /moose/build/tools/luadocumentor/luadocumentor.lua ] +then + git clone --branch patch-1 --single-branch https://github.com/Applevangelist/luadocumentor.git +fi + +# Run luadocumentor +cd /moose/build/tools/luadocumentor +lua luadocumentor.lua -d /moose/build/doc '/moose/Moose Development/Moose' + +# Copy generated files in the MOOSE_DOCS repo if it is already there +if [ -d /moose/build/MOOSE_DOCS/Documentation ]; then + rm -rf /moose/build/MOOSE_DOCS/Documentation + mkdir -p /moose/build/MOOSE_DOCS/Documentation + cp /moose/build/doc/* /moose/build/MOOSE_DOCS/Documentation/ +fi