nutti / fake-bpy-module

Fake Blender Python API module collection for the code completion.
MIT License
1.35k stars 96 forks source link

Create and archive build artifacts #51

Closed grische closed 4 years ago

grische commented 4 years ago

Purpose of the pull request
Create and store all build artifacts for automatic building and hence easy testing.

See artifacts for current PR: https://github.com/nutti/fake-bpy-module/actions/runs/148697983

Description about the pull request
In this PR, we are creating artifacts for the "raw_modules" folder and the generated pip packages. The pip artifact allows you to manually download and install on your local machine with the pip install <filename> command.

I chose a second-exact resolution timestamp for the files, as we might have multiple builds per day. While all those artifact filenames have a timestamp as a version, I did not (as requested) modify the RELEASE_VERSION.

Additional comments [Optional]
EDIT: I removed all independent parts of this PR and focus primarily on generating artifacts.

Should some parts of the CI fail (for example, 2.82 fails while 2.79 builds), then the artifacts for 2.79 are still being saved. For example: https://github.com/grische/fake-bpy-module/actions/runs/148676363

grische commented 4 years ago

@nutti I updated this PR and modified the description accordingly

The artifacts can be found on the following page after all jobs have succeeded: https://github.com/nutti/fake-bpy-module/actions/runs/148697983

grische commented 4 years ago

Thanks. I have a question about this feature.

Is it possible to pack all pip or raw files to one file such as all.zip. It is convenient for me to download all artifacts at once.

@nutti Can you explain your use-case to me?

With the fully parallel run (i.e. with Matrix Actions), every parallel run generates some artifacts. We can of course create another job in the CI which downloads each artifact, uncompresses it, re-compress it into a single file, and publishes a new artifact (and delete the other artifacts). I thought that additional complexity in the CI is not needed. Maybe I missed a use-case there.

I thought of this use-case for myself:

grische commented 4 years ago

We can also of course do this later as an improvement. I have a few more suggestions to improve the artifacts (e.g. the content of the artifacts, the bash scripts re- and decompress zip files, etc).

grische commented 4 years ago

Rebased on top of master, running CI including the new tests: https://github.com/nutti/fake-bpy-module/actions/runs/149968450