canonical / rockcraft

Tool to create OCI Images using the language from Snapcraft and Charmcraft.
GNU General Public License v3.0
25 stars 33 forks source link

Cannot build multiple ROCKs from the same repo with local source #617

Open alnvdl-work opened 5 days ago

alnvdl-work commented 5 days ago

Bug Description

Before (v1.4.0), I had a single rockcraft.yaml with two parts (one for each server binary written in Golang that I need to pack), and I could call rockcraft pack my-part-name to get different ROCKs. I see that option was removed now in v1.5.2.

But I still can't pass alternative rockcraft.yaml files to rockcraft pack: it always picks the one from the current working dir. Moving the rockcraft.yaml to a subdir is not an option, because I need the entire root folder to be sent as context to compile both sub-projects. BTW, I use the following source:

    source-type: local
    source: .

This is a common pattern in Golang applications: have the same repository from which many different binaries can be built.

This was previously discussed here, without a conclusion: https://matrix.to/#/!NPPCseDHKRvSBMUEXN:ubuntu.com/$F8APWD_OPK64KsECe4MNFQbX1ObhES2aMFKrMN6BRpc?via=ubuntu.com&via=matrix.org

Am I doing something wrong, or is this a real limitation?

For now, I guess I will work around this with symbolic links and scripts.

To Reproduce

N/A

Environment

rockcraft v1.5.2 on Ubuntu 22.04.

rockcraft.yaml

N/A

Relevant log output

N/A

tigarmo commented 5 days ago

The reason that this was removed is because it was never really intended: it was a side-effect of allowing a part-name in the other lifecycle commands like build and clean. For rockcraft, pack <part-name> is specially problematic because I'm not even sure that Pebble is getting built and added to the rock correctly in this case.

I do apologize for the noise: we thought (incorrectly) that no one was using this "feature".

(cc @mr-cal @sergiusens )