This PR adds CD pipelines to build a binary for Linux and binary and MSI installer for Windows.
Changes
Adds pyinstaller and pyinstaller-versionfile to development dependencies. The pyinstaller package is required for all platforms, while pyinstaller-versionfile is only used to create a version file for the binary on Windows. It uses the template from ci-scripts/windows/pyinstaller/file_version_info_metadata.yaml.
Adds build and dist directories to .gitignore file, in case the build is run locally.
Adds spec files for one directory and one file build on Linux. The one directory build is not used yet.
Adds spec files for one directory and one file build on Windows.
Adds workflow files for Linux and Windows.
Adds a workflow task to verify that the package version of pynitrokey, in the pynitrokey/VERSION file, is the same as the tagged version, e.g. version file has 0.4.35 and tag has v0.4.35 would be permitted. The version file must contain only the version number. A wrong version file or version tag will cause the workflows to fail and leaves the created release without release artifacts. The pynitrokey package is using version numbers by the schema MAJOR.MINOR.PATCH. On Windows this will translate to the version number MAJOR.MINOR.PATCH.0.
Checklist
[x] tested with Python3.9
[ ] run make check or make fix for the formatting check
This PR adds CD pipelines to build a binary for Linux and binary and MSI installer for Windows.
Changes
pyinstaller
andpyinstaller-versionfile
to development dependencies. Thepyinstaller
package is required for all platforms, whilepyinstaller-versionfile
is only used to create a version file for the binary on Windows. It uses the template fromci-scripts/windows/pyinstaller/file_version_info_metadata.yaml
.pynitrokey/VERSION
file, is the same as the tagged version, e.g. version file has0.4.35
and tag hasv0.4.35
would be permitted. The version file must contain only the version number. A wrong version file or version tag will cause the workflows to fail and leaves the created release without release artifacts. Thepynitrokey
package is using version numbers by the schemaMAJOR.MINOR.PATCH
. On Windows this will translate to the version numberMAJOR.MINOR.PATCH.0
.Checklist
make check
ormake fix
for the formatting checkTest Environment and Execution
Relevant Output Example
Fixes #314