Skip to content

Commit

Permalink
this will begin to set things right (#77)
Browse files Browse the repository at this point in the history
* update to node18

* move post bootstrap cli things to @lando/core

* rework orchestrator setup into download-x utils, listr2 tasks and axios upgrade

* rough setup framework and some bug fixes

* move orchestrator fallback to build-config util

* run tests

* first pass on plugin mgmt merge

* poc on basic plugin MGMT

* prep for lando 3 plugin mgmt part 2

* work in basic plugin auth stuff

* small plugin mgmt ux tweakz

* first pass on setup framework and update docker deps/compat matrix

* purge lampy things

* tests

* Add parseConfig util function.

* Set toolingCache.

* setup getting more defined

* good enough for @lando/setup-lando

* rework runtime a bit so dep checks happen in a better place

* first pass on macos build engine installer

* first pass on macos build engine installer part 2

* first pass on macos build engine installer part 3

* first pass on macos build engine installer part 4

* make sure all debug logging is going to the right fd, conditionalize setup build engine for darwin only for now

* make sure all debug logging is going to the right fd, conditionalize setup build engine for darwin only for now part 2

* rework unit tests to accomodate mkdirp removal

* just one of those days

* just one of those days part 2

* just one of those days part 3

* just one of those days part 4

* just one of those days part 5

* just one of those days part 6

* just one of those days part 7

* just one of those days part 8

* reorganize core into plugins

* first pass windows installer

* add additional options to windows docker installer

* improve win32 docker-desktop installer error handling

* that was painful

* improved run-elevated to handle windows

* improved run-elevated to handle windows part 2

* first pass on restart logix

* first pass on shutdown logix part 2

* make sure we run the correct wsl-2 status command

* make sure WSL_UTF8 is set so we dont get unicode back

* align macos docker install to be like win32

* basic linux installer

* basic linux installer part 2

* basic linux installer part 3

* improve autostart on linux

* rework addWarning to be more generic

* update to new messaging framework

* update lando setup ux

* remove dangling debug file

* lando update command first pass

* feature complete almost on lando update

* feature complete almost on lando update part 2

* new lando version command

* fix busted tests

* fix bug with restart logix

* wait-for-user at beginning

* make dep check a bit more robust

* better experience and things when running from source

* better experience and things when running from source

* revert version

* standardize cli entrypoint and installPath stuff part 2

---------

Co-authored-by: Alec Reynolds <[email protected]>
  • Loading branch information
pirog and reynoldsalec committed Oct 10, 2024
1 parent 099340f commit bf1c6e2
Show file tree
Hide file tree
Showing 139 changed files with 6,413 additions and 1,718 deletions.
27 changes: 12 additions & 15 deletions .github/workflows/pr-core-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ jobs:
fail-fast: false
matrix:
docker-compose-version:
- "1.29.1"
- "2.21.0"
- "2.23.0"
healthcheck:
- new
lando-version:
Expand All @@ -35,7 +34,7 @@ jobs:
- examples/services
- examples/tooling
node-version:
- "16"
- "18"
os:
- ubuntu-22.04
scanner:
Expand All @@ -58,24 +57,22 @@ jobs:
cache: yarn
- name: Install Yarn dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Bundle Deps
uses: lando/prepare-release-action@v2
with:
lando-plugin: true
version: dev
sync: false
- name: Setup lando ${{ matrix.lando-version }}
uses: lando/setup-lando@v2
with:
lando-version: ${{ matrix.lando-version }}
telemetry: false
config: |
setup.skipCommonPlugins=true
setup.plugins.@lando/core=/home/runner/work/core/core
setup.orchestrator=${{ matrix.docker-compose-version }}
orchestratorVersion=${{ matrix.docker-compose-version }}
plugins.@lando/core=/home/runner/work/core/core
telemetry: false
- name: Verify Lando works and we are dogfooding this plugin for tests
run: |
# TODO: once we have the new plugin stuff in the CLI we can remove this in favor of a local lando pa
# what about removing the plugins?
mkdir -p /home/runner/.lando/plugins/@lando
ln -sf /home/runner/work/core/core /home/runner/.lando/plugins/@lando/core
lando --clear
lando config
lando config --path plugins --format json | jq -r '.[] | select(.name == "@lando/core").searchDir' | grep /home/runner/work/core/core || (echo "::error:: Not dogfooding this plugin correctly!" && exit 1)
- name: Run Leia Tests
uses: lando/run-leia-action@v2
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-db-tools-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
os:
- ubuntu-22.04
node-version:
- '16'
- "18"
leia-tests:
- examples/sql-export
- examples/sql-import
Expand Down
28 changes: 14 additions & 14 deletions .github/workflows/pr-plugin-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ jobs:
fail-fast: false
matrix:
docker-compose-version:
- "1.29.1"
- "2.21.0"
- "2.23.0"
healthcheck:
- new
lando-version:
Expand All @@ -26,7 +25,7 @@ jobs:
- examples/proxy
- examples/scanner
node-version:
- "16"
- "18"
os:
- ubuntu-22.04
scanner:
Expand All @@ -35,15 +34,15 @@ jobs:
# run legacy scanner checks on dc2
- docker-compose-version: "2.21.0"
healthcheck: new
node-version: "16"
node-version: "18"
lando-version: 3-dev
leia-test: examples/scanner
os: ubuntu-22.04
scanner: legacy
# run legacy healthchecks on dc2
- docker-compose-version: "2.21.0"
healthcheck: legacy
node-version: "16"
node-version: "18"
lando-version: 3-dev
leia-test: examples/healthcheck
os: ubuntu-22.04
Expand All @@ -60,21 +59,22 @@ jobs:
cache: yarn
- name: Install Yarn dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Bundle Deps
uses: lando/prepare-release-action@v2
with:
lando-plugin: true
version: dev
sync: false
- name: Setup lando ${{ matrix.lando-version }}
uses: lando/setup-lando@v2
with:
lando-version: ${{ matrix.lando-version }}
telemetry: false
config: |
setup.skipCommonPlugins=true
setup.plugins.@lando/core=/home/runner/work/core/core
setup.orchestrator=${{ matrix.docker-compose-version }}
orchestratorVersion=${{ matrix.docker-compose-version }}
telemetry: false
- name: Verify Lando works and we are dogfooding this plugin for tests
run: |
mkdir -p /home/runner/.lando/plugins/@lando
ln -sf /home/runner/work/core/core /home/runner/.lando/plugins/@lando/core
lando --clear
lando config
lando config --path plugins --format json | jq -r '.[] | select(.name == "@lando/core").searchDir' | grep /home/runner/work/core/core || (echo "::error:: Not dogfooding this plugin correctly!" && exit 1)
lando config --path plugins --format json | jq -r '.[] | select(.name == "@lando/networking").searchDir' | grep /home/runner/work/core/core/plugins/networking || (echo "::error:: Not dogfooding this plugin correctly!" && exit 1)
- name: Run Leia Tests
uses: lando/run-leia-action@v2
env:
Expand Down
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1 +1 @@
nodejs 14.17.6
nodejs 18
9 changes: 9 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,15 @@ module.exports = async (app, lando) => {
// i really wish thre was a better way to do this but alas i do not think there is
app.events.on('pre-rebuild', 10, async () => await require('./hooks/app-shuffle-locals')(app, lando));

// Check for updates if the update cache is empty
app.events.on('pre-start', 1, async () => await require('./hooks/app-check-for-updates')(app, lando));

// If the app already is installed but we can't determine the builtAgainst, then set it to something bogus
app.events.on('pre-start', async () => await require('./hooks/app-update-built-against-pre')(app, lando));

// Add update tip if needed
app.events.on('post-start', async () => await require('./hooks/app-add-updates-info')(app, lando));

// If we don't have a builtAgainst already then we must be spinning up for the first time and its safe to set this
app.events.on('post-start', async () => await require('./hooks/app-update-built-against-post')(app, lando));

Expand All @@ -128,6 +134,9 @@ module.exports = async (app, lando) => {
// Check for docker compat warnings and surface them nicely as well
app.events.on('post-start', async () => await require('./hooks/app-check-docker-compat')(app, lando));

// throw service not start errors
app.events.on('post-start', 9999, async () => await require('./hooks/app-check-v4-service-running')(app, lando));

// Reset app info on a stop, this helps prevent wrong/duplicate information being reported on a restart
app.events.on('post-stop', async () => require('./utils/get-app-info-defaults')(app));

Expand Down
113 changes: 0 additions & 113 deletions builders/_drupaly.js

This file was deleted.

Loading

0 comments on commit bf1c6e2

Please sign in to comment.