Skip to content

Add temporary builds from GitHub Actions#365

Merged
skejserjensen merged 11 commits intomainfrom
dev/upload-builds
Nov 17, 2025
Merged

Add temporary builds from GitHub Actions#365
skejserjensen merged 11 commits intomainfrom
dev/upload-builds

Conversation

@skejserjensen
Copy link
Copy Markdown
Contributor

This PR mainly closes #364 by creating builds for aarch64 macOS, x86_64 Windows, and x86_64 Linux for each commit to the main branch and uploading them to GitHub as Artifacts. Thus, the latest builds can be found in the Artifacts window for the latest Workflow that completed successfully. To make users aware of this, the installation documentation has been extended with information about how to install ModelarDB from these builds. While extending the main GitHub Action to create builds, unnecessary steps were also removed, and the workflow was made as consistent as possible. The -W was also added to sphinx.cmd.build to make GitHub Action stop if an error occurs. Thus, a sphinx error and a sphinx warning also had to be fixed. Finally, a tiny update to deltalake was included to not require an entire PR for such a small change.

As this PR creates builds for some platforms, it is also a step towards #210. To create stable versioned releases from the builds created by this PR, a workflow that only runs when a version tag is being pushed can probably be used, e.g., on: push: tags: - 'v*'. This workflow can then just download the build artifacts and create a release from them, similar to the steps shown below. Although be aware that these steps are not thoroughly tested. Also, see the documentation for softprops/action-gh-release for how to automatically set name and tag_name instead of hardcoding them as in the example below.

create_release:
  name: Create Versioned Release
  runs-on: ubuntu-latest
  needs: build_and_upload_binaries
  steps:
    - uses: actions/download-artifact@v4
      with:
        path: .
    - name: Upload to Release
      uses: softprops/action-gh-release@v2
      with:
        name: v0.1.0
        tag_name: v0.1.0
        token: ${{ secrets.GITHUB_TOKEN }}
        files: *.zip

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds automated binary builds for aarch64 macOS, x86_64 Windows, and x86_64 Linux on every commit to the main branch, making development builds available as GitHub Actions artifacts for 90 days. The workflow has been enhanced and streamlined, and documentation has been added to inform users how to access these builds.

  • Adds a new build_and_upload_binaries job to the GitHub Actions workflow that builds and uploads binaries after successful testing
  • Updates documentation with instructions on how to download and use the temporary builds from GitHub Actions artifacts
  • Upgrades the deltalake dependency from version 0.29.3 to 0.29.4

Reviewed Changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
docs/user/README.md Adds new "Installation from Builds" section documenting how to access temporary builds from GitHub Actions artifacts
.github/workflows/build-lint-test-and-upload.yml Renames workflow, removes redundant Windows-specific setup, standardizes quote styles, reorders Python build steps, and adds new job to build and upload binaries for all platforms
Cargo.toml Updates deltalake dependency from 0.29.3 to 0.29.4
Cargo.lock Updates lockfile with new deltalake version and its transitive dependencies (ctor, ctor-proc-macro, dtor, dtor-proc-macro)
crates/modelardb_embedded/bindings/python/docs/_static/.gitignore Adds .gitignore file with Apache license header to ensure the _static directory exists for Sphinx
Comments suppressed due to low confidence (2)

.github/workflows/build-lint-test-and-upload.yml:188

  • On Windows, executable files require the .exe extension. The mv commands will fail because the source files are named modelardb.exe, modelardbb.exe, modelardbd.exe, and modelardbm.exe on Windows, not without the extension. Consider adding conditional logic to handle the Windows case:
if [[ "$RUNNER_OS" == "Windows" ]]; then
  mv target/release/modelardb.exe modelardb_$RUST_TRIPLE/
  mv target/release/modelardbb.exe modelardb_$RUST_TRIPLE/
  mv target/release/modelardbd.exe modelardb_$RUST_TRIPLE/
  mv target/release/modelardbm.exe modelardb_$RUST_TRIPLE/
else
  mv target/release/modelardb modelardb_$RUST_TRIPLE/
  mv target/release/modelardbb modelardb_$RUST_TRIPLE/
  mv target/release/modelardbd modelardb_$RUST_TRIPLE/
  mv target/release/modelardbm modelardb_$RUST_TRIPLE/
fi

.github/workflows/build-lint-test-and-upload.yml:161

  • Grammar error in the comment: "reduce" should be "reduces". The comment should read: # --jobs 1 reduces resource use.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@skejserjensen skejserjensen merged commit c3c7398 into main Nov 17, 2025
9 of 17 checks passed
@skejserjensen skejserjensen deleted the dev/upload-builds branch November 17, 2025 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create temporary releases on commits to main

4 participants