Merge branch 'devel' into doc-release-option

This commit is contained in:
Italo José
2025-12-11 15:31:02 -03:00
committed by GitHub
4 changed files with 67 additions and 35 deletions

View File

@@ -1,4 +1,4 @@
name: Meteor Selftest Windows
name: Windows Selftest
on:
pull_request:
@@ -6,10 +6,19 @@ on:
- opened
- reopened
- synchronize
paths:
- 'meteor'
- 'meteor.bat'
- 'tools/**'
- 'packages/babel-compiler/**'
- 'packages/dynamic-import/**'
- 'packages/meteor/**'
- 'packages/meteor-tool/**'
- '.github/workflows/windows-selftest.yml'
push:
branches:
- devel
- 2.x.x
env:
METEOR_PRETTY_OUTPUT: 0
@@ -28,10 +37,6 @@ jobs:
cancel-in-progress: true
steps:
- name: cleanup
shell: powershell
run: Remove-Item -Recurse -Force ${{ github.workspace }}\*
- name: Checkout code
uses: actions/checkout@v4
@@ -40,23 +45,37 @@ jobs:
with:
node-version: 22.x
- name: Cache dependencies
id: meteor-cache
uses: actions/cache@v4
with:
path: |
dev_bundle/
.babel-cache/
.meteor/
~/.npm
node_modules/
packages/**/.npm
key: ${{ runner.os }}-meteor-${{ hashFiles('**/package-lock.json', 'meteor', 'meteor.bat') }}
restore-keys: |
${{ runner.os }}-meteor-
- name: Install dependencies
shell: pwsh
run: |
$env:PATH = "C:\Program Files\7-Zip;$env:PATH"
.\scripts\windows\ci\install.ps1
# Run ONLY when the cache was NOT restored
- name: Prepare Meteor (cache miss)
if: steps.meteor-cache.outputs.cache-hit != 'true'
shell: pwsh
run: |
$env:PATH = "C:\Program Files\7-Zip;$env:PATH"
.\meteor.bat --get-ready
- name: Run tests
shell: pwsh
run: |
$env:PATH = "C:\Program Files\7-Zip;$env:PATH"
.\scripts\windows\ci\test.ps1
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
.\dev_bundle
.\.babel-cache
.\.meteor
key: ${{ runner.os }}-meteor-${{ hashFiles('**/package-lock.json') }}

View File

@@ -4,7 +4,7 @@ description: How to use Meteor's build system to compile your app.
discourseTopicId: 19669
---
The Meteor build system is the actual command line tool that you get when you install Meteor. You run it by typing the `meteor` command in your terminal, possibly followed by a set of arguments. Read the [docs about the command line tool](https://docs.meteor.com/commandline.html) or type `meteor help` in your terminal to learn about all of the commands.
The Meteor build system is the actual command line tool that you get when you install Meteor. You run it by typing the `meteor` command in your terminal, possibly followed by a set of arguments. Read the [docs about the command line tool](https://docs.meteor.com/cli/) or type `meteor help` in your terminal to learn about all of the commands.
<h2 id="what-it-does">What does it do?</h2>
@@ -16,7 +16,7 @@ After executing the `meteor` command to start the build tool you should leave it
<h3 id="compiles-with-build-plugins">Compiles files with build plugins</h3>
The main function of the Meteor build tool is to run "build plugins". These plugins define different parts of your app build process. Meteor puts heavy emphasis on reducing or removing build configuration files, so you won't see any large build process config files like you would in Gulp or Webpack. The Meteor build process is configured almost entirely through adding and removing packages to your app and putting files in specially named directories. For example, to get all of the newest stable ES2015 JavaScript features in your app, you add the [`ecmascript` package](http://docs.meteor.com/#/full/ecmascript). This package provides support for ES2015 modules, which gives you even more fine grained control over file load order using ES2015 `import` and `export`. As new Meteor releases add new features to this package you get them for free.
The main function of the Meteor build tool is to run "build plugins". These plugins define different parts of your app build process. Meteor puts heavy emphasis on reducing or removing build configuration files, so you won't see any large build process config files like you would in Gulp or Webpack. The Meteor build process is configured almost entirely through adding and removing packages to your app and putting files in specially named directories. For example, to get all of the newest stable ES2015 JavaScript features in your app, you add the [`ecmascript` package](https://docs.meteor.com/packages/ecmascript.html). This package provides support for ES2015 modules, which gives you even more fine grained control over file load order using ES2015 `import` and `export`. As new Meteor releases add new features to this package you get them for free.
<h4 id="controlling-build-files">Controlling which files to build</h4>
@@ -224,7 +224,7 @@ For more examples and details on importing styles and using `@imports` with pack
<h3 id="sass">Sass</h3>
The best Sass build plugin for Meteor is [`fourseven:scss`](https://atmospherejs.com/fourseven/scss).
The best Sass build plugin for Meteor is [`leonardoventurini:scss`](https://atmospherejs.com/leonardoventurini/scss). An alternative to the previous recommended [`fourseven:scss`](https://atmospherejs.com/fourseven/scss) package.
<h3 id="less">Less</h3>

View File

@@ -695,3 +695,9 @@ From this point on, the process for submitting the app to the Play Store is the
Because Crosswalk bundles native code for Chromium, you will end up with APKs for both ARM and x86. You can find the generated APKs in the `<build-output-directory>/android/project/build/outputs/apk` directory.
You will have to sign and `zipalign` both APKs. You will also have to submit both to the Play Store, see [submitting multiple APKs](http://developer.android.com/google/play/publishing/multiple-apks.html) for more information.
<h2>Other tips</h2>
The back gesture is disabled by default on iOS, but it can be enabled at runtime like this:
```window.WkWebView.allowsBackForwardNavigationGestures(true);```

View File

@@ -4,6 +4,9 @@ If ($env:PLATFORM -Match '^x86|x64$') {
$env:PLATFORM = "windows_${env:PLATFORM}"
}
# Check if we're running in a CI environment
$isCI = $env:GITHUB_ACTIONS -eq "true"
$dirCheckout = (Get-Item $PSScriptRoot).parent.parent.parent.FullName
$meteorBat = Join-Path $dirCheckout 'meteor.bat'
@@ -15,7 +18,8 @@ Write-Host "Updating submodules recursively..." -ForegroundColor Magenta
# Appveyor suggests -q flag for 'git submodule...' https://goo.gl/4TFAHm
& git.exe -C "$dirCheckout" submodule -q update --init --recursive
If ($LASTEXITCODE -ne 0) {
# Only throw locally
If ($LASTEXITCODE -ne 0 -and -not $isCI) {
throw "Updating submodules failed."
}
@@ -25,25 +29,28 @@ If ($LASTEXITCODE -ne 0) {
throw "'meteor npm install' failed."
}
# Only `meteor --get-ready` get-ready locally to have better control on CI
# The `meteor --get-ready` command is susceptible to EPERM errors, so
# we attempt it three times.
$attempt = 3
$success = $false
while ($attempt -gt 0 -and -not $success) {
If (-not $isCI) {
$attempt = 3
$success = $false
while ($attempt -gt 0 -and -not $success) {
Write-Host "Running 'meteor --get-ready'..." -ForegroundColor Magenta
# By redirecting error to host, we avoid a shocking/false error color,
# since --get-ready and --version can print (anything) to STDERR and
# PowerShell will interpret that as something being terribly wrong.
& "$meteorBat" --get-ready
Write-Host "Running 'meteor --get-ready'..." -ForegroundColor Magenta
# By redirecting error to host, we avoid a shocking/false error color,
# since --get-ready and --version can print (anything) to STDERR and
# PowerShell will interpret that as something being terribly wrong.
& "$meteorBat" --get-ready
If ($LASTEXITCODE -eq 0) {
$success = $true
} else {
$attempt--
If ($LASTEXITCODE -eq 0) {
$success = $true
} else {
$attempt--
}
}
If ($LASTEXITCODE -ne 0) {
throw "Running .\meteor --get-ready failed three times."
}
}
If ($LASTEXITCODE -ne 0) {
throw "Running .\meteor --get-ready failed three times."
}