Skip to content

Commit

Permalink
Merge branch 'main' of github.com:lando/core into main
Browse files Browse the repository at this point in the history
  • Loading branch information
pirog committed Oct 10, 2024
2 parents 014b734 + 5adfb67 commit 22fc6cf
Show file tree
Hide file tree
Showing 21 changed files with 14,855 additions and 24,766 deletions.
1 change: 0 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,5 @@ cache
dist
_site
coverage
.nyc_output
!.vitepress
config.mjs.timestamp-*.mjs
12 changes: 6 additions & 6 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,19 @@
},
"parser": "@babel/eslint-parser",
"parserOptions": {
"sourceType": "script",
"sourceType": "module",
"ecmaVersion": 8,
"requireConfigFile": false
},
"extends": "google",
"rules": {
"arrow-parens": ["error", "as-needed"],
"arrow-parens": ["error",
"as-needed"
],
"max-len": ["error", {
"code": 150,
"code": 120,
"ignoreComments": true
}],
"no-extra-semi": ["error"],
"require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": true,
Expand All @@ -25,7 +26,6 @@
"ArrowFunctionExpression": false,
"FunctionExpression": false
}
}],
"strict": ["error", "global"]
}]
}
}
7 changes: 2 additions & 5 deletions .github/workflows/pr-docs-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
os:
- ubuntu-24.04
node-version:
- '18'
- "18"
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -31,16 +31,13 @@ jobs:
- name: Install dependencies
run: npm clean-install --prefer-offline --frozen-lockfile

# Run tests
- name: Run linter
run: npm run lint
- name: Test mvb
run: npm run docs:mvb
- name: Test build
run: npm run docs:build
- name: Test mvb
run: npm run docs:mvb
- name: Test build
run: npm run docs:build

lando-docs-tests:
runs-on: ${{ matrix.os }}
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/pr-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@ jobs:
os:
- ubuntu-24.04
node-version:
- '18'
- "18"
steps:

# Install deps and cache
# Eventually it would be great if these steps could live in a separate YAML file
# that could be included in line to avoid code duplication
- name: Checkout code
uses: actions/checkout@v4
- name: Install node ${{ matrix.node-version }}
Expand Down
11 changes: 4 additions & 7 deletions .github/workflows/pr-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,14 @@ jobs:
fail-fast: false
matrix:
os:
- windows-2022
- ubuntu-24.04
- macos-13
- macos-14
- ubuntu-24.04
- windows-2022
node-version:
- '18'
- "18"
steps:

# Install deps and cache
# Eventually it would be great if these steps could live in a separate YAML file
# that could be included in line to avoid code duplication
- name: Checkout code
uses: actions/checkout@v4
- name: Install node ${{ matrix.node-version }}
Expand All @@ -33,4 +31,3 @@ jobs:
# Run unit tests
- name: Run unit tests
run: npm run test:unit
shell: bash
255 changes: 29 additions & 226 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,181 +1,13 @@
name: Create Releases
name: Publish to NPM

on:
release:
types:
- published

jobs:
package:
runs-on: ${{ matrix.runner }}
env:
TERM: xterm
strategy:
fail-fast: false
matrix:
runner:
- macos-14
- ubuntu-24.04
node-version:
- '18'
os:
- linux
- macos
- win

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies
run: npm clean-install --prefer-offline --frozen-lockfile --production
- name: Install plugins
run: scripts/fatcore-install.sh
- name: Prepare Release
uses: lando/prepare-release-action@v3
with:
sync: false
- name: Ensure version
run: node ./bin/lando version
- name: Ensure plugins installed
run: node ./bin/lando config | grep -q "node_modules/@lando/wordpress"
- name: Package into node binary
uses: lando/pkg-action@v5
with:
entrypoint: bin/lando
node-version: ${{ matrix.node-version }}
os: ${{ matrix.os }}
options: --options dns-result-order=ipv4first
- name: Ensure fatcore
if: matrix.os == 'linux' && runner.os == 'Linux' && runner.arch == 'X64'
run: ./dist/@lando/cli config --path fatcore | grep true
- name: Ensure ipv4first
if: matrix.os == 'linux' && runner.os == 'Linux' && runner.arch == 'X64'
run: ./dist/@lando/cli config --path cli.args | grep dns-result-order=ipv4first

sign-n-deploy:
deploy:
runs-on: ${{ matrix.os }}
needs:
- package
env:
TERM: xterm
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
key: cli-node18-win-x64-${{ github.sha }}
file: lando/cli.exe
certificate-data: KEYLOCKER_CLIENT_CERT
certificate-password: KEYLOCKER_CLIENT_CERT_PASSWORD
result: lando-win-x64-${{ github.ref_name }}.exe
- os: windows-2022
key: cli-node18-win-arm64-${{ github.sha }}
file: lando/cli.exe
certificate-data: KEYLOCKER_CLIENT_CERT
certificate-password: KEYLOCKER_CLIENT_CERT_PASSWORD
result: lando-win-arm64-${{ github.ref_name }}.exe
- os: macos-13
key: cli-node18-macos-x64-${{ github.sha }}
file: lando/cli
certificate-data: APPLE_CERT_DATA
certificate-password: APPLE_CERT_PASSWORD
apple-product-id: dev.lando.cli
apple-team-id: FY8GAUX282
apple-notary-user: APPLE_NOTARY_USER
apple-notary-password: APPLE_NOTARY_PASSWORD
options: --options runtime --entitlements entitlements.xml
result: lando-macos-x64-${{ github.ref_name }}
- os: macos-13
key: cli-node18-macos-arm64-${{ github.sha }}
file: lando/cli
certificate-data: APPLE_CERT_DATA
certificate-password: APPLE_CERT_PASSWORD
apple-product-id: dev.lando.cli
apple-team-id: FY8GAUX282
apple-notary-user: APPLE_NOTARY_USER
apple-notary-password: APPLE_NOTARY_PASSWORD
options: --options runtime --entitlements entitlements.xml
result: lando-macos-arm64-${{ github.ref_name }}
- os: ubuntu-24.04
key: cli-node18-linux-x64-${{ github.sha }}
file: lando/cli
certificate-data: KEYLOCKER_CLIENT_CERT
certificate-password: KEYLOCKER_CLIENT_CERT_PASSWORD
result: lando-linux-x64-${{ github.ref_name }}
- os: ubuntu-24.04
key: cli-node18-linux-arm64-${{ github.sha }}
file: lando/cli
certificate-data: KEYLOCKER_CLIENT_CERT
certificate-password: KEYLOCKER_CLIENT_CERT_PASSWORD
result: lando-linux-arm64-${{ github.ref_name }}

steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download ${{ matrix.key }}
uses: actions/download-artifact@v3
with:
name: ${{ matrix.key }}
path: lando
- name: Sign and Notarize
uses: lando/code-sign-action@v2
id: code-sign-action
with:
file: ${{ matrix.file }}
certificate-data: ${{ secrets[matrix.certificate-data] }}
certificate-password: ${{ secrets[matrix.certificate-password] }}
apple-notary-user: ${{ secrets[matrix.apple-notary-user] }}
apple-notary-password: ${{ secrets[matrix.apple-notary-password] }}
apple-product-id: ${{ matrix.apple-product-id }}
apple-team-id: ${{ matrix.apple-team-id }}
keylocker-host: https://clientauth.one.digicert.com
keylocker-api-key: ${{ secrets.KEYLOCKER_API_KEY }}
keylocker-cert-sha1-hash: ${{ secrets.KEYLOCKER_CERT_SHA1_HASH }}
keylocker-keypair-alias: ${{ secrets.KEYLOCKER_KEYPAIR_ALIAS }}
options: ${{ matrix.options }}
- name: Rename as needed
shell: bash
run: |
mkdir -p releases
cp ${{ steps.code-sign-action.outputs.file }} releases/${{ matrix.result }}
# if a latest release then push to stable tag
if [ "${{ github.event.release.prerelease }}" == "false" ]; then
cp releases/${{ matrix.result }} "releases/$(echo ${{ matrix.result }} | sed 's/${{ github.ref_name }}/stable/;')"
fi
# both latest/stable should push to edge
cp releases/${{ matrix.result }} "releases/$(echo ${{ matrix.result }} | sed 's/${{ github.ref_name }}/edge/;')"
- name: Configure S3 Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.S3_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.S3_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Upload releases to S3
shell: bash
run: aws s3 sync releases s3://files.lando.dev/cli
- name: Upload releases to GitHub Releases
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: releases/${{ matrix.result }}
fail_on_unmatched_files: true

# we run this again at the end and sync here so that we only sync when a build and deploy succeedes
bump:
runs-on: ${{ matrix.os }}
needs:
- sign-n-deploy
env:
TERM: xterm
PRERELEASE_TAG: edge
Expand All @@ -184,74 +16,45 @@ jobs:
os:
- ubuntu-24.04
node-version:
- '18'
- "18"

steps:
# Install deps and cache
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
uses: actions/checkout@v4
- name: Install node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org
cache: npm
- name: Install dependencies
run: npm clean-install --prefer-offline --frozen-lockfile --production
- name: Update release helpers
shell: bash
run: |
if [[ ${{ github.event.release.tag_name }} == v4* ]]; then
echo "${{ github.event.release.tag_name }}" > release-aliases/4-EDGE
if [ "${{ github.event.release.prerelease }}" == "false" ]; then
echo "${{ github.event.release.tag_name }}" > release-aliases/4-STABLE
fi
elif [[ ${{ github.event.release.tag_name }} == v3* ]]; then
echo "${{ github.event.release.tag_name }}" > release-aliases/3-EDGE
if [ "${{ github.event.release.prerelease }}" == "false" ]; then
echo "${{ github.event.release.tag_name }}" > release-aliases/3-STABLE
fi
fi
run: npm clean-install --prefer-offline --frozen-lockfile

- name: Export formatted release date
run: echo "RELEASE_DATE=$(date -d "${{ github.event.release.published_at }}" "+%B %e, %Y" | tr -s ' ')" >> $GITHUB_ENV
# Let's do tests rq just to make sure we dont push something that is fundamentally broken
- name: Lint code
run: npm run lint
- name: Run unit tests
run: npm run test:unit
- name: Prepare Release
uses: lando/prepare-release-action@v3
with:
update-files: CHANGELOG.md
update-files-header: |
## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
update-files-meta: |
UNRELEASED_DATE=${{ env.RELEASE_DATE }}
UNRELEASED_LINK=${{ github.event.release.html_url }}
UNRELEASED_VERSION=${{ github.event.release.tag_name }}
sync-email: [email protected]
lando-plugin: true
sync-token: ${{ secrets.RTFM47_COAXIUM_INJECTOR }}
sync-email: [email protected]
sync-username: rtfm-47
- name: Ensure version
run: node ./bin/lando version
- name: Push release to lando/lando
uses: softprops/action-gh-release@v2
with:
repository: lando/lando
name: ${{ github.event.release.tag_name }}
draft: ${{ github.event.release.draft }}
prerelease: ${{ github.event.release.prerelease }}
tag_name: ${{ github.event.release.tag_name }}
token: ${{ secrets.RTFM47_COAXIUM_INJECTOR }}
body: |
**Starting with 3.21.0-beta.18 Lando is no longer distributed via package installers in these releases**
To install Lando please visit the [official install docs](https://docs.lando.dev/install).
## Changelogs

Lando now runs as a distributed plugin-based ecosystem so you will want to check the releases/changelogs in
the various repos for relevant notes. That said here are links to the changes reflected in this release
* [@lando/core@${{ github.event.release.tag_name }}](https://github.com/lando/core/releases/tag/${{ github.event.release.tag_name }})
* [@lando/cli@${{ github.event.release.tag_name }}](https://github.com/lando/cli/releases/tag/${{ github.event.release.tag_name }})
## Notes
* We will continue to push releases here for backwards compatibility, posterity, etc
* [Extended release notes](https://lando.dev/blog/2024/01/16/v321-extended.html)
# Deploy
- name: Publish to npm
run: |
if [ "${{ github.event.release.prerelease }}" == "false" ]; then
npm publish --access public --dry-run
npm publish --access public
echo "::notice title=Published ${{ github.ref_name }} to @${{ github.repository }}::This is a stable release published to the default 'latest' npm tag"
else
npm publish --access public --tag ${{ env.PRERELEASE_TAG }} --dry-run
npm publish --access public --tag ${{ env.PRERELEASE_TAG }}
echo "::notice title=Published ${{ github.ref_name }} to @${{ github.repository }}@${{ env.PRERELEASE_TAG }}::This is a pre-release published to the '${{ env.PRERELEASE_TAG }}' npm tag"
fi
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_TOKEN }}
Loading

0 comments on commit 22fc6cf

Please sign in to comment.