Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
a5d59fd
fix(compose): Fix compose file path resolution as it is copied into t…
florianPat Nov 1, 2024
b97aab5
feat: If no service key is given, we assume its _lando-compose for se…
florianPat Apr 3, 2026
618252f
refactor(compose): Fix to use the configured compose seperator in all…
florianPat Nov 1, 2024
6afc8ce
fix(app.mounts): Use configured appMount of service and not always /a…
florianPat Oct 2, 2024
117c1f4
refactor(home-dir): Add a config option to just share the ssh directo…
florianPat Nov 1, 2024
6478e72
update(traefik): Enable the traefik dashboard as thats useful per def…
florianPat Nov 1, 2024
aa16a73
fix(tooling): Check that container setup is finished at container sta…
florianPat Sep 9, 2024
481d7f4
fix(events): Make sure the perm-sweep is run for docker-compose services
florianPat Nov 16, 2024
a732988
feat(exec): Exec can also run if the app is not yet started and add n…
florianPat Oct 19, 2024
9e88713
feat(volumes): Use the lando proxy dir as the config volume and there…
florianPat Sep 9, 2024
6f58b9e
feat(bootstrap): Add special '_init' service for events so that one c…
florianPat Oct 19, 2024
5e9e557
feat(bootstrap): Add bootstrap event handling and fix lando is not ye…
florianPat Oct 19, 2024
13e697f
feat(_init-for-tooling): Add special _init service for tooling commands
florianPat Oct 20, 2024
e3d7129
feat(init): Remove init compose after execution
florianPat Oct 19, 2024
38c8895
feat(core): Add core loading also from config
florianPat Nov 7, 2024
636183c
fix(config): Fix reloading of lando config after setup as binary config
florianPat Jan 3, 2025
234d3c6
feat(events): Add special `lando` service for events to run tooling t…
florianPat Jan 5, 2025
4bb5ab5
feat: Optional docker composification of project name
florianPat Jan 6, 2025
6f30914
fix(lando-entrypoint): Due to script mounting changes the fallback of
florianPat Jan 19, 2025
e4f734a
feat(env-file): Add compose_env_file option to the .lando.yml
florianPat Feb 24, 2025
08bf1c4
feat(docker-bin): Use which docker to find the docker binary
florianPat Mar 4, 2025
00443b8
feat(cli): Add lando_cli env var as a yargs configuration
florianPat Mar 4, 2025
e1aae63
fix(setup-engine): Do not throw an error if docker desktop is not
florianPat Mar 13, 2025
57fcc30
feat(plugin-auth): Inject auth from home npmrc to authenticate agains…
florianPat Aug 22, 2025
cc6dc2a
feat(wsl): Use docker-engine in wsl instead of docker desktop for bet…
florianPat Aug 25, 2025
f3db2f9
feat(proxy): Add option to not strip hostname prefixes
florianPat Aug 25, 2025
f8ab3fd
Revert "feat(wsl): Use docker-engine in wsl instead of docker desktop…
florianPat Aug 29, 2025
283e1e3
feat: Reduce volumes
florianPat Dec 2, 2025
3fada3b
chore: Make sure to not have another install indirection and just ins…
florianPat Dec 3, 2025
2fef801
feat: Use homepageurl of the core plugin to update the core/cli
florianPat Jan 4, 2026
cc96b76
chore: Remove unneeded reset orchastrator
florianPat Dec 7, 2025
bd8a46a
fix(pull): Do not try to pull an image which is buildable in docker c…
florianPat Dec 30, 2025
a7e0481
fix: Trusted publishing
florianPat Dec 30, 2025
bc80834
feat: Be able to pass compose options through to docker compose
florianPat Jan 4, 2026
8c4a977
feat: Add in env vars from the LANDO_CLI_ENV_JSON env var
florianPat Jan 5, 2026
98e6355
feat: Do not strip COMPOSE_ env variables
florianPat Jan 5, 2026
1363760
fix(perm-helpers): Fix permission setup so that it also works for alpine
florianPat Dec 29, 2024
a6bb2a4
fix(tooling): fix resolve dir/appmount on the first start if we start…
florianPat Jan 30, 2026
f1fd8d1
feat: Add quietPull option for compose up command
florianPat Mar 15, 2026
2391b43
chore: Bump docker versions
florianPat Dec 4, 2025
703e0ec
feat: Set the entrypoint to /lando-entrypoint.sh but make sure that t…
florianPat Apr 3, 2026
5a6f6e0
Make sure that user-perms does not fail if we run as webroot user root
florianPat Apr 3, 2026
cd6d5a5
Small optimizations: No unnecessary chmod and do not run user-perms i…
florianPat Apr 3, 2026
3bb8ba7
feat(entrypoint): Make sure that services stay alive even if the comm…
florianPat Apr 11, 2026
0f05f35
chore: flos core package changes and make release possible
florianPat Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 28 additions & 36 deletions .github/workflows/deploy-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ on:
github-token:
description: "The github token"
required: true
npm-token:
description: "The npm deploy token"
required: true

jobs:
deploy-npm:
Expand All @@ -28,34 +25,31 @@ jobs:
uses: actions/setup-node@v6
with:
node-version: ${{ inputs.node-version }}
registry-url: https://registry.npmjs.org
cache: npm
- name: Install dependencies
run: npm clean-install --prefer-offline --frozen-lockfile
- name: Lint code
run: npm run lint
- name: Run unit tests
run: npm run test:unit
- name: Update edge release alias
shell: bash
run: |
if ./scripts/semcompare.sh "${{ github.event.release.tag_name }}" "$(cat ./release-aliases/3-EDGE)"; then
echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-EDGE
fi
- name: Update stable release alias
shell: bash
if: github.event.release.prerelease == false
run: |
if ./scripts/semcompare.sh "${{ github.event.release.tag_name }}" "$(cat ./release-aliases/3-STABLE)"; then
echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-STABLE
fi
#- name: Update edge release alias
# shell: bash
# run: |
# if ./scripts/semcompare.sh "${{ github.event.release.tag_name }}" "$(cat ./release-aliases/3-EDGE)"; then
# echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-EDGE
# fi
#- name: Update stable release alias
# shell: bash
# if: github.event.release.prerelease == false
# run: |
# if ./scripts/semcompare.sh "${{ github.event.release.tag_name }}" "$(cat ./release-aliases/3-STABLE)"; then
# echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-STABLE
# fi
- name: Prepare Release
uses: lando/prepare-release-action@v3
with:
lando-plugin: true
sync-token: ${{ secrets.github-token }}
sync-email: rtfm47@lando.dev
sync-username: rtfm-47
sync: false
- name: Upgrade npm for trusted publishing
run: npm install -g "npm@^11.5.1"
- name: Publish to npm
Expand All @@ -64,9 +58,9 @@ jobs:
PACKAGE=$(node -p "require('./package.json').name")

if [ "${{ github.event.release.prerelease }}" == "false" ]; then
npm publish --access public --dry-run
npm publish --access public
npm dist-tag add "$PACKAGE@$VERSION" edge
npm publish --access public --tag latest --dry-run
npm publish --access public --tag latest
# npm dist-tag add "$PACKAGE@$VERSION" edge # not supported with trusted publishing

echo "::notice title=Published $VERSION to $PACKAGE::This is a stable release published to the default 'latest' npm tag"
echo "::notice title=Updated latest tag to $VERSION::The stable tag now points to $VERSION"
Expand All @@ -78,16 +72,14 @@ jobs:
echo "::notice title=Published $VERSION to $PACKAGE::This is a prerelease published to the 'edge' npm tag"
echo "::notice title=Updated edge tag to $VERSION::The edge tag now points to $VERSION"
fi
env:
NODE_AUTH_TOKEN: ${{ secrets.npm-token }}
- name: Update edge release alias on main
if: github.event.release.target_commitish == 'edge'
run: |
git clone https://github.com/lando/core.git core
cd core
git config user.name "rtfm-47"
git config user.email "rtfm47@lando.dev"
echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-EDGE
git add .
git commit -m "Update edge release alias to ${{ github.event.release.tag_name }} triggered by @rtfm-47"
git push https://x-access-token:${{ secrets.github-token }}@github.com/lando/core.git main
#- name: Update edge release alias on main
# if: github.event.release.target_commitish == 'edge'
# run: |
# git clone https://github.com/lando/core.git core
# cd core
# git config user.name "rtfm-47"
# git config user.email "rtfm47@lando.dev"
# echo "${{ github.event.release.tag_name }}" > ./release-aliases/3-EDGE
# git add .
# git commit -m "Update edge release alias to ${{ github.event.release.tag_name }} triggered by @rtfm-47"
# git push https://x-access-token:${{ secrets.github-token }}@github.com/lando/core.git main
78 changes: 39 additions & 39 deletions .github/workflows/dev-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,38 +29,38 @@ jobs:
os: ${{ matrix.os }}
version: dev

sign:
uses: ./.github/workflows/sign-binary.yml
needs:
- package
strategy:
fail-fast: false
matrix:
file:
- lando-linux-arm64-${{ github.sha }}
- lando-macos-arm64-${{ github.sha }}
- lando-win-arm64-${{ github.sha }}
#sign:
# uses: ./.github/workflows/sign-binary.yml
# needs:
# - package
# strategy:
# fail-fast: false
# matrix:
# file:
# - lando-linux-arm64-${{ github.sha }}
# - lando-macos-arm64-${{ github.sha }}
# - lando-win-arm64-${{ github.sha }}

- lando-linux-x64-${{ github.sha }}
- lando-macos-x64-${{ github.sha }}
- lando-win-x64-${{ github.sha }}
# - lando-linux-x64-${{ github.sha }}
# - lando-macos-x64-${{ github.sha }}
# - lando-win-x64-${{ github.sha }}

with:
download-pattern: packaged-lando-*
file: ${{ matrix.file }}
secrets:
apple-notary-user: ${{ secrets.APPLE_NOTARY_USER }}
apple-notary-password: ${{ secrets.APPLE_NOTARY_PASSWORD }}
certificate-data: ${{ contains(matrix.file, 'macos') && secrets.APPLE_CERT_DATA || secrets.KEYLOCKER_CLIENT_CERT }}
certificate-password: ${{ contains(matrix.file, 'macos') && secrets.APPLE_CERT_PASSWORD || secrets.KEYLOCKER_CLIENT_CERT_PASSWORD }}
keylocker-api-key: ${{ secrets.KEYLOCKER_API_KEY }}
keylocker-cert-sha1-hash: ${{ secrets.KEYLOCKER_CERT_SHA1_HASH }}
keylocker-keypair-alias: ${{ secrets.KEYLOCKER_KEYPAIR_ALIAS }}
# with:
# download-pattern: packaged-lando-*
# file: ${{ matrix.file }}
# secrets:
# apple-notary-user: ${{ secrets.APPLE_NOTARY_USER }}
# apple-notary-password: ${{ secrets.APPLE_NOTARY_PASSWORD }}
# certificate-data: ${{ contains(matrix.file, 'macos') && secrets.APPLE_CERT_DATA || secrets.KEYLOCKER_CLIENT_CERT }}
# certificate-password: ${{ contains(matrix.file, 'macos') && secrets.APPLE_CERT_PASSWORD || secrets.KEYLOCKER_CLIENT_CERT_PASSWORD }}
# keylocker-api-key: ${{ secrets.KEYLOCKER_API_KEY }}
# keylocker-cert-sha1-hash: ${{ secrets.KEYLOCKER_CERT_SHA1_HASH }}
# keylocker-keypair-alias: ${{ secrets.KEYLOCKER_KEYPAIR_ALIAS }}

build-release-binary-alias:
uses: ./.github/workflows/release-rename-binary.yml
needs:
- sign
- package
strategy:
fail-fast: false
matrix:
Expand All @@ -77,11 +77,11 @@ jobs:
with:
source: lando-${{ matrix.os }}-${{ matrix.arch }}-${{ github.sha }}
destination: lando-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.alias }}
download-pattern: signed-lando-*
download-pattern: packaged-lando-*
build-release-binary-branch:
uses: ./.github/workflows/release-rename-binary.yml
needs:
- sign
- package
strategy:
fail-fast: false
matrix:
Expand All @@ -96,7 +96,7 @@ jobs:
with:
source: lando-${{ matrix.os }}-${{ matrix.arch }}-${{ github.sha }}
destination: lando-${{ matrix.os }}-${{ matrix.arch }}-${{ github.head_ref || github.ref_name }}
download-pattern: signed-lando-*
download-pattern: packaged-lando-*

checksum:
uses: ./.github/workflows/generate-checksums.yml
Expand All @@ -116,16 +116,16 @@ jobs:
show: true
upload-name: release-checksums-${{ matrix.alias }}

deploy-releases-s3:
uses: ./.github/workflows/deploy-s3.yml
needs:
- checksum
with:
download-pattern: release-*
secrets:
aws-secret-access-key: ${{ secrets.S3_SECRET_ACCESS_KEY }}
aws-access-key-id: ${{ secrets.S3_ACCESS_KEY_ID }}
aws-region: us-east-1
#deploy-releases-s3:
# uses: ./.github/workflows/deploy-s3.yml
# needs:
# - checksum
# with:
# download-pattern: release-*
# secrets:
# aws-secret-access-key: ${{ secrets.S3_SECRET_ACCESS_KEY }}
# aws-access-key-id: ${{ secrets.S3_ACCESS_KEY_ID }}
# aws-region: us-east-1
deploy-releases-artifacts:
uses: ./.github/workflows/deploy-artifacts.yml
needs:
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/pkg-binary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ jobs:
cache: npm
- name: Install dependencies
run: npm clean-install --prefer-offline --frozen-lockfile --production
- name: Install plugins
run: scripts/install-plugins.sh --lando bin/lando ${{ inputs.edge == true && '--edge' || '' }}
#- name: Install plugins
# run: scripts/install-plugins.sh --lando bin/lando ${{ inputs.edge == true && '--edge' || '' }}
- name: Switch to edge channel
if: inputs.edge == true
run: |
Expand Down Expand Up @@ -82,8 +82,8 @@ jobs:
- name: Ensure channel
if: (inputs.os == 'linux' && runner.os == 'Linux') || (inputs.os == 'macos' && runner.os == 'macOS')
run: ./dist/${{ inputs.filename }} config --path channel | grep ${{ inputs.edge == true && 'edge' || 'stable' }}
- name: Ensure plugin install
if: ((inputs.os == 'linux' && runner.os == 'Linux') || (inputs.os == 'macos' && runner.os == 'macOS'))
run: |
./dist/${{ inputs.filename }} config --path fatcore | grep true
./dist/${{ inputs.filename }} config | grep -q "/snapshot/core/plugins/wordpress"
#- name: Ensure plugin install
# if: ((inputs.os == 'linux' && runner.os == 'Linux') || (inputs.os == 'macos' && runner.os == 'macOS'))
# run: |
# ./dist/${{ inputs.filename }} config --path fatcore | grep true
# ./dist/${{ inputs.filename }} config | grep -q "/snapshot/core/plugins/wordpress"
Loading
Loading