-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build CI #182
base: main
Are you sure you want to change the base?
Build CI #182
Conversation
cache: npm | ||
|
||
- name: 📦 Install dependencies | ||
run: npm install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this project uses yarn, so I'd also use that in the ci action?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, but something is wrong with the repo then, because we have a package-lock.json
which is an npm file. Yarn uses yarn.lock
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah I also wondered. but the package manager specified in package.json is yarn:
"packageManager": "[email protected]"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dansup what's the package management situation, what should we use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should remove yarn then and say to use npm? the npm lock file was updated recently, so I bet @dansup uses npm meanwhile. 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Simon-Laux I think there is more maintenance work to be done. I believe that google-services.json
and the EAS project ID (in app.json
) should both be included in the public repo. We can probably keep google-services.json
private if @dansup really wants it, but it will be difficult to get around the missing EAS ID in a workflow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think listing/formatting and typescript tests would be already be a good start for ci.
I bet also that you can somehow locally build in GitHub Actions without using expos cloud.
on deltachat project we build iOS in a GitHub action: https://github.com/deltachat/deltachat-ios/actions/runs/12766119235/workflow which works quite well, I bet android might be even easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Simon-Laux, I'll check it out. I tried building it with expo directly, skipping EAS, but I ran into weird issues when running on GitHub. Maybe even more manually is the way to go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made an issue for discussing package managers #189
Lint and Android seem to be done, but I think we want to run Edit: it's failing on Github and my laptop, but not on my PC, which is weird. |
Turned out to it was missing LFS. I don't think we need LFS - as part of this PR I'm reversing this project to be properly managed by Expo (meaning the I know I'm new here, but I'd like to stick around for some time longer. Do you happen to have a different (private) communications channel to discuss issues like these? Would you like me to help out with the mobile part of the project? |
This PR is ready now @Simon-Laux, waiting for blockers to be merged. |
Same, I'm also new and like to know that, I'm a volunteer just like you ;) |
I found out there is a discord server for development here: https://discord.gg/VDhM32hbUK @Simon-Laux. Feel free to join |
Thanks for the link, I found discord links before, but they were all expired, this one is valid 🤩 thanks again |
Hey @dansup, before merging this, please consider enabling commit squashing (and disabling other forms of merging) in the repo settings - the commit history is a mess (since I could only test by pushing) and it won't look nice if it's included in the commit history of the main branch. |
After this PR is finished and merged, I advise configuring the repo to require the CI to pass before merging a pull request
GitHub runners (both Linux and macOS) are free for public repositories (docs)
Documentation on how eas builds the apps: Android, iOS
TODO
GOOGLE_SERVICES_JSON
and add thegoogle-services.json
file as it's contentStatus
npx expo-doctor
on main, before fixes:Changes
if lint passesand ifexpo-doctor
runs without any issues. This means that the majority of patches passing these checks will run on both platforms (functionality is not tested though)android/
andios/
folders from the repo. This project is managed by expo and these directories are automatically generated during build. I confirmed that their previous contents match what is generated automatically.Android is built manually using
gradlew
in the same way it is described in the docs.iOS is built using
xcodebuild
which is a bit different from what expo does, but doing it the expo way would require us to load the correct provisioning profile in the CI, which could be done, but would increase the complexity of the setup.Lint CI will be introduced when the TypeScript transition is complete.
Blockers
Related issues
Closes #165