Sign in

Stanisław Chmiela

@sjchmiela.bsky.social
25 followers 2 following 31 posts

@expo.dev

PostsRepliesMedia
Stanisław Chmiela @sjchmiela.bsky.social · 04/03/2025
I’m really happy we got to this point! Thank you for all your help debugging and squashing problems one by one. If you encounter any issues in the future I’ll be more than happy to help!
020
Stanisław Chmiela @sjchmiela.bsky.social · 04/03/2025
Woot woot woot!! 🎉 We’ve also released eas-cli 15.0.13 today which should no longer remove `.git` if only you have an `.easignore`. In other words you shouldn’t see “fatal: not a git repository” anymore!
110
Stanisław Chmiela @sjchmiela.bsky.social · 03/03/2025
The fix landed! Again, thank you. Curious what we need to do yet to get a successful submission... haha
110
Stanisław Chmiela @sjchmiela.bsky.social · 28/02/2025
This is awesome!! I was dismissing the idea a single asterisk could match subdirectories. Thank you!! I'll let you know when the fix lands.
110
Stanisław Chmiela @sjchmiela.bsky.social · 28/02/2025
Woooow, it helped!! Looks like now a mix of `plutil | xpath` is failing to parse `Info.plist` for `CFBundleIdentifier`. Looking into why (it works with another IPA I have at hand)… github.com/expo/eas-bui...
github.com
100
Stanisław Chmiela @sjchmiela.bsky.social · 28/02/2025
We're working on adding an `eas/submit` function so you can some day do: ``` - uses: eas/checkout - ... build packages - uses: eas/submit ``` In the meantime would you consider moving the building of packages to `postinstall` like described here? docs.expo.dev/build-refere...
docs.expo.dev
Set up EAS Build with a monorepo
Learn how to set up EAS Build with a monorepo.
110
Stanisław Chmiela @sjchmiela.bsky.social · 28/02/2025
Wow, ok, that was helpful! Turns out it was *not* the Node deprecation warning. JQ treats the space after 6-letter word "Failed" as "number literal", hence the error message. TIL! The following error makes sense. It's hard to resolve app config when some config plugins (live-activity) aren't built!
100
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Also, huge huge thanks for all the help when debugging this. Tomorrow I'm going to waive the charges for all the builds you've used while setting this up and testing things.
120
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Submitted a pull request that will let us see more into why things are failing. Hoping to merge tomorrow. For now the only thing we could try is a workflow like gist.github.com/sjchmiela/2b... BTW thanks for the suggestion to add `HOMEBREW_NO_INSTALL_CLEANUP` to Homebrew calls!! Will do too.
gist.github.com
test.yml
GitHub Gist: instantly share code, notes, and snippets.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
I see `NODE_NO_WARNINGS` hasn't helped… I've tried reproducing with the same Node version on another project and I had no issues… I'll make it so we `EXPO_DEBUG=1` prints more information. Maybe that's not punycode, but something else instead? Sorry for all the hassle around this.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
BTW I think if you remove `.easignore`, `.git` will end up in the tarball which should allow you to ``` BRANCH=$(git rev-parse --abbrev-ref HEAD) ``` to get the branch name. Just noticed a bug in `eas-cli@15` which causes `.git` to be skipped if you have `.easignore`). Will fix today.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Also, a sidenote — `${{ github.* }}` interpolation thingies are only available when a workflow run is triggered from GitHub. If it starts from `eas workflow:run`, `github.*` properties will be empty.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Funny thing is… there already is one. I'll add `NODE_NO_WARNINGS=1` to the `npx` call, maybe that will help. If you want to try it first, you should be able to add ``` submit: env: NODE_NO_WARNINGS: "1" ... ```
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Switching to Node 20 must have started triggering the (node:1699815) [DEP0040] DeprecationWarning: The punycode module is deprecated.... warning. Let me do something about it.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Ugh. Couple words of context—preparing credentials involves running an `eas-cli` command to resolve the credentials based on selected profile and app config / project. We run it with `--json` to later programmatically parse its output piping into `jq`.
110
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
I’m excited to provide you a solution for the error though! Yesterday @tchayen.com added ability to set tools versions for all workflow jobs, including submit. github.com/expo/expo/pu... Try ``` … on: push: branches: … defaults: tools: node: 20.13.1 … jobs: … ```
github.com
[docs] Describe workflow defaults by tchayen · Pull Request #35189 · expo/expo
Why Recently I added default.tools. Also noticed that defaults in general are not documented so added that too. How Test Plan Run docs locally if needed. Checklist I added a changelog.md entry ...
130
Stanisław Chmiela @sjchmiela.bsky.social · 27/02/2025
Yea, unfortunately we do need the `node_modules` to submit. Submitting is configured by profiles and may depend on dynamic app config (`app.config.ts`) which may require dependencies.
100
Stanisław Chmiela @sjchmiela.bsky.social · 25/02/2025
Can you please run ``` npx -y eas-cli@latest build:inspect -p ios -s archive -o ~/sjchmiela-help ``` and check if: - `.git` is inside - inside `mobile-mapkit` and `live-activity` there's a podspec file?
100
Stanisław Chmiela @sjchmiela.bsky.social · 25/02/2025
So, a couple questions: - do you have `EAS_NO_VCS` in your env or `.git` in `.easignore`? (This would explain why there's no `.git` in the tarball.) - do you have `requireCommit` in `eas.json`? (This should always package `.git`.) - does `mobile-mapkit` have native iOS code? (My guess is yes.)
100
Stanisław Chmiela @sjchmiela.bsky.social · 25/02/2025
Sorry for the delay, a mix of RSV and flu in the family made debugging a bit harder than usual haha This is very strange. It looks to me like: - there's no `.git` in the project tarball - `expo-module-scripts` thinks `mobile-mapkit` is an iOS module, but it lacks podspec inside.
100
Stanisław Chmiela @sjchmiela.bsky.social · 21/02/2025
Yea, can you please try latest and let me know how it goes for you? If there are issues I need to fix them.
110
Stanisław Chmiela @sjchmiela.bsky.social · 21/02/2025
On the other hand, judging by the error, in your `eas.json` you have eas-cli version requirement set to >= 14.1.0 <= 14.7.1. I think removing the upper bound should help. Is there a reason you’ve pinned these versions? FWIW most of the v15 problems the early versions had should be gone now.
100
Stanisław Chmiela @sjchmiela.bsky.social · 21/02/2025
Oh yea, sorry, should have read the error in the screenshot better. I think the issue is that in EAS we always use `eas-cli@latest` for anything—like reading build profiles. We’re currently at `eas-cli@15.0.11` if I remember correctly.
100
Stanisław Chmiela @sjchmiela.bsky.social · 21/02/2025
That’s surprising! Care to share the build link? I’ll see if there’s something I can find.
100
Stanisław Chmiela @sjchmiela.bsky.social · 20/02/2025
We've got this in Workflows now! Just calculated a version string in a `setup` job and then passed it as `env` to a `build_android` job for the dynamic config to say ``` export default ({ config }) => ({ version: process.env.EXPO_VERSION || config.version, ... ``` gist.github.com/sjchmiela/8a...
110
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
Yea, that should work if `.env` works like you think (it may, just not sure). This is similar to writing version string into eas.json, just without the commit and push. 👍
010
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
Yea, me neither. Let me cook something up real quick. Adding `env` to workflow jobs, so you can do sth like: ``` setup: ... steps: - run: | set-output version_string "2020.02.02" build: needs: [setup] env: VERSION_STRING: ${{ needs.setup.outputs.version_string }} ... ```
210
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
So… what you could do is add that version string as build profile environment variable (and then commit and push for the branch to be up-to-date too) using `jq` or any other JSON-manipulating thing on CI. Does that sound right? docs.expo.dev/eas/json/#env
docs.expo.dev
eas.json
Learn about available properties for EAS Build and EAS Submit to configure and override their default behavior from within your project.
110
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
Haha, what do you know, I've just started working on adding schedule (cron) support to EAS Workflows… With this + some improvements to workflow interpolation mechanism what you describe should be very doable. I'll let you know when what you described is ~easy to achieve. Later this week maybe?
110
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
How would you like to use it? What do you want to achieve?
110
Stanisław Chmiela @sjchmiela.bsky.social · 19/02/2025
I don’t think there is by default. You might try using `spawnSync(git branch)` at the expense of performance of various app-config-resolving processes. Another way to solve this would be to pass an environment variable with the Git branch name from the workflow and use that in `app.config.ts`.
110