Skip to content
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

Allow non-github #8

Open
bettse opened this issue Mar 6, 2023 · 4 comments
Open

Allow non-github #8

bettse opened this issue Mar 6, 2023 · 4 comments

Comments

@bettse
Copy link

bettse commented Mar 6, 2023

the git box on https://flipc.org/build appears to assume the repo is on github. Ideally it would support any git provider (gitlab, bitbucket, or your own personal server)

@playmean
Copy link
Owner

This will require an additional moderation I don't have time to :(

@mistial-dev
Copy link

Is it possible to just have a repo that emits a stored .fap from git, so that it can be on the app store?

@playmean
Copy link
Owner

@mistial-dev

No, it builds app from sources for selected firmware and channel. Externally built .fap file can be outdated or api mismatch

@mistial-dev
Copy link

mistial-dev commented Apr 11, 2023

I was able to successfully build a fap by ignoring the sources and just pointing the target directly at the .elf file.

As an example with the 2048 game:

mistial@Mistials-MacBook-Pro flipperzero-firmware % cp build/f7-firmware-D/.extapps/game_2048_d.elf applications_user/flipper-zero-2048-game
mistial@Mistials-MacBook-Pro flipperzero-firmware % cat applications_user/flipper-zero-2048-game/application.fam
App(
    appid="game_2048",
    name="2048",
    apptype=FlipperAppType.EXTERNAL,
    entry_point="game_2048_app",
    cdefines=["APP_GAME_2048"],
    requires=[
        "gui",
    ],
    stack_size=1 * 1024,
    order=90,
    fap_icon="game_2048.png",
    fap_category="Games",
    sources=["game_2048_d.elf"]
)
mistial@Mistials-MacBook-Pro flipperzero-firmware % ./fbt fap_game_2048                                             
    LINK    build/f7-firmware-D/.extapps/game_2048_d.elf
    SDKCHK    firmware/targets/f7/api_symbols.csv
API version 21.0 is up to date
    APPMETA    build/f7-firmware-D/.extapps/game_2048.fap
    FAP    build/f7-firmware-D/.extapps/game_2048.fap
    APPCHK    build/f7-firmware-D/.extapps/game_2048.fap
   

The fam file itself is a python script, so it wouldn't be too hard to detect the firmware and channel. It could then dynamically pick the appropriate elf file. I could then use something like github actions (on a private repo) to build all the firmwares, tags, and APIs, name them appropriately, and push them to the public .elf repository.

It's a bit of a workaround, but it would allow a closed source app in the app store that worked without changing the build scripts on your end, adding additional moderation, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants