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

CI: Create archive for deployment on Linux #571

Merged
merged 1 commit into from Nov 11, 2019
Merged

Conversation

@ubruhin
Copy link
Member

ubruhin commented Nov 6, 2019

Currently we provide two ways to install LibrePCB binaries on Linux: Installer and AppImage. But the installer is a pain for automated installation, and the AppImage does not work out-of-the-box in Docker containers (because FUSE is missing). To avoid these issues, I think it makes sense to also provide the binaries in a *.tar.gz archive for Linux. It's basically "for free", since we just need to bundle the already available binaries in a *.tar.gz.

Interestingly I also realized that the librepcb-cli currently doesn't work on Linux when installed with the installer, because that binary was not patched with linuxdeployqt. That's also fixed with this PR, so it should now work on Linux too.

@dbrgn

This comment has been minimized.

Copy link
Member

dbrgn commented Nov 6, 2019

Interestingly I also realized that the librepcb-cli currently doesn't work on Linux when installed with the installer, because that binary was not patched with linuxdeployqt. That's also fixed with this PR, so it should now work on Linux too.

Cool, that probably fixes the deployment issues that @PatrickFranken had as well, right?

@ubruhin

This comment has been minimized.

Copy link
Member Author

ubruhin commented Nov 6, 2019

Cool, that probably fixes the deployment issues that @PatrickFranken had as well, right?

Actually I don't know (yet), but if he used the installer, then probably yes :)

Btw, I forgot to mention that the new archive can be "reviewed" here: https://download.librepcb.org/nightly_builds/ci-build-linux-archive/librepcb-nightly-linux-x86_64.tar.gz

@dbrgn

This comment has been minimized.

Copy link
Member

dbrgn commented Nov 6, 2019

Actually I don't know (yet), but if he used the installer, then probably yes :)

No, the AppImage, which segfaulted on his server...

Copy link
Member

dbrgn left a comment

Btw, I forgot to mention that the new archive can be "reviewed" here: https://download.librepcb.org/nightly_builds/ci-build-linux-archive/librepcb-nightly-linux-x86_64.tar.gz

The archive currently contains a root directory called .. This results in the files being extracted into the current directory, without a containing root directory.

It would be good if the archive contained a root directory called librepcb or librepcb-nightly-linux-x86_64.

(The binaries work though!)

@ubruhin ubruhin force-pushed the ci-build-linux-archive branch from 1af175b to 0dbcf2a Nov 8, 2019
@ubruhin

This comment has been minimized.

Copy link
Member Author

ubruhin commented Nov 8, 2019

The archive currently contains a root directory called .. This results in the files being extracted into the current directory, without a containing root directory.

Hmm yeah that was indeed strange...

It would be good if the archive contained a root directory called librepcb or librepcb-nightly-linux-x86_64.

Actually I don't like having a root directory in an archive (the purpose of an archive is to bundle multiple files into one file, so why move them all into a useless subdirectory). But (unfortunately) it seems to be common practice to do so, thus I added the root directory librepcb-nightly-linux-x86_64 and now need to adjust the release scripts to replace "nightly" inside the *.tar.gz with the actual version number...

Or is it also accepted to put the actual files into the root of a tar archive?

@dbrgn

This comment has been minimized.

Copy link
Member

dbrgn commented Nov 8, 2019

Or is it also accepted to put the actual files into the root of a tar archive?

No, a root directory is more common. If you don't want the root dir, you can use --strip-components=1 when unpacking. However, if you accidentally unpack an archive without a root directory, you got files all over the place...

@ubruhin

This comment has been minimized.

Copy link
Member Author

ubruhin commented Nov 9, 2019

OK the archive now contains the root directory librepcb-nightly-linux-x86_64.

@ubruhin ubruhin requested a review from dbrgn Nov 9, 2019
@ubruhin ubruhin force-pushed the ci-build-linux-archive branch from 0dbcf2a to f504cb6 Nov 11, 2019
@dbrgn
dbrgn approved these changes Nov 11, 2019
Copy link
Member

dbrgn left a comment

Thanks!

@ubruhin ubruhin merged commit 38812d3 into master Nov 11, 2019
11 checks passed
11 checks passed
LibrePCB Build #20191111.4 succeeded
Details
LibrePCB (Doxygen) Doxygen succeeded
Details
LibrePCB (Linux Ubuntu_1404_GCC) Linux Ubuntu_1404_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1604_GCC) Linux Ubuntu_1604_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1604_Qt_5_12_3_GCC) Linux Ubuntu_1604_Qt_5_12_3_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1804_Clang) Linux Ubuntu_1804_Clang succeeded
Details
LibrePCB (Linux Ubuntu_1904_GCC9) Linux Ubuntu_1904_GCC9 succeeded
Details
LibrePCB (Stylecheck) Stylecheck succeeded
Details
LibrePCB (macOS) macOS succeeded
Details
continuous-integration/appveyor/branch AppVeyor build succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
@ubruhin ubruhin deleted the ci-build-linux-archive branch Nov 11, 2019
ubruhin added a commit that referenced this pull request Nov 17, 2019
CI: Create archive for deployment on Linux
(cherry picked from commit 38812d3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.