krazkidd / kdeck

Desktop client for Kalshi event trading platform
GNU General Public License v3.0
2 stars 0 forks source link

Add GitHub workflow for release build #19

Closed krazkidd closed 3 months ago

krazkidd commented 3 months ago

We can automatically build to provide a download option through GitHub.

This should use a Docker container and any build options should be made available through whatever solution is provided for #18.

Only a Linux build is required at this time.

[!IMPORTANT] We must be careful to comply with any licensing requirements of any packaged dependencies.

krazkidd commented 3 months ago

Copilot offered a starter Docker-based Workflow build:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Build Docker Image
      run: docker build -t my-cpp-project .

    - name: Run Build in Docker Container
      run: docker run -v "$(pwd):/src" my-cpp-project make

    - name: Upload Build Artifact
      uses: actions/upload-artifact@v2
      with:
        name: my-artifact
        path: ./build/output

Note that the Docker team provides a number of GitHub Actions, however, these appear to be focused on building and registering/uploading images rather than being used for arbitrary CI steps. But since Docker is available on Workflow runtimes, we can just run docker commands directly. (Alternatively, you can build your own Docker-based Action.)

krazkidd commented 3 months ago

[!IMPORTANT] We must be careful to comply with any licensing requirements of any packaged dependencies.

Here's a list of licensing requirements:

Note that we do not distribute these libraries nor any of their secondary dependencies. On Debian, these are all provided through APT as shared libraries, and the kdeck executable that is build requires these to run. Therefore, there should be no requirement to provide source code or copyright notices, however, we will consider attributing library authors in #27.