Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
eb6ab9a
Cleanup, sync repos, bring latest changes, fix incorrect merges
pierotofy Apr 9, 2026
a5ca435
What tests
pierotofy Apr 9, 2026
32f7330
Command invokation fix, Dockerfile changes without venv
pierotofy Apr 10, 2026
adb2bb2
Revert "feat: add flag --merge-skip-blending to skip expensive blendi…
pierotofy Apr 10, 2026
8f7b8de
Fix requirements, configure.sh, pdal VLR forwarding
pierotofy Apr 10, 2026
f4e52bd
Readd shebang
pierotofy Apr 10, 2026
754492d
Revert "fix(odm): invoke secondary invokation of odm cli is prepended…
pierotofy Apr 10, 2026
5f00e52
Revert "fix(odm): use MultiPolygon for cutline fiona usage, remove un…
pierotofy Apr 10, 2026
c7dbb90
Fix cutline computation
pierotofy Apr 10, 2026
10e985a
Remove unused imports
pierotofy Apr 10, 2026
9b67c29
Fix SRT parsing and GPS altitude handling
kemaluzel Feb 6, 2026
444cfb2
Round to 3 decimals
pierotofy Apr 10, 2026
12aff42
GDAL, hexer out
pierotofy Apr 10, 2026
eb1e339
Fix create_bounds_gpkg
pierotofy Apr 10, 2026
ddd606f
No need for ceres patch
pierotofy Apr 10, 2026
a13ed44
Remove PYTHON_HOME
pierotofy Apr 10, 2026
ce2275d
Fix Python path, update README
pierotofy Apr 10, 2026
b2f59c2
Update README
pierotofy Apr 10, 2026
dcf245c
Update README
pierotofy Apr 10, 2026
5b8a902
Fix PDALPython path
pierotofy Apr 10, 2026
080b565
Use pierotofy pdal-python
pierotofy Apr 10, 2026
6d51230
Update OpenSfM, log changes
pierotofy Apr 10, 2026
ceb0a70
Test GPU build
pierotofy Apr 10, 2026
26b8bec
Checkpoints support
pierotofy Apr 10, 2026
7c4d2c2
Update workflow dispatch URL
pierotofy Apr 10, 2026
3f6d4e7
Update Badges
pierotofy Apr 10, 2026
cb9975f
Fix indent
pierotofy Apr 10, 2026
fef503c
Dont fail dev setup if permissions fail
pierotofy Apr 10, 2026
e28d900
Fix cropper
pierotofy Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 0 additions & 53 deletions .github/workflows/publish-docker.yaml

This file was deleted.

108 changes: 108 additions & 0 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Publish Docker

on:
push:
branches:
- master
tags:
- v*
workflow_dispatch:
jobs:
build-amd64:
runs-on: ubuntu-latest
timeout-minutes: 1440
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config-inline: |
[worker.oci]
max-parallelism = 1
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v1
with:
images: webodm/odm
tag-semver: |
{{version}}
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- name: Build and push Docker image (AMD64)
id: docker_build_amd64
uses: docker/build-push-action@v6
with:
context: .
file: ./portable.Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: |
webodm/odm:latest-amd64
provenance: false
build-arm64:
runs-on: ubuntu-24.04-arm
timeout-minutes: 1440
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config-inline: |
[worker.oci]
max-parallelism = 1
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- name: Build and push Docker image (ARM64)
id: docker_build_arm64
uses: docker/build-push-action@v6
with:
context: .
file: ./portable.Dockerfile
platforms: linux/arm64
push: true
no-cache: true
tags: |
webodm/odm:latest-arm64
provenance: false

create-manifest:
runs-on: ubuntu-latest
needs: [build-amd64, build-arm64]
steps:
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create and push multi-platform manifest
run: |
docker pull --platform linux/amd64 webodm/odm:latest-amd64
docker pull --platform linux/arm64 webodm/odm:latest-arm64
docker manifest create webodm/odm:latest \
webodm/odm:latest-amd64 \
webodm/odm:latest-arm64
docker manifest push webodm/odm:latest

# Trigger NodeODM build, OATS test
- name: Dispatch Build Event
id: build_dispatch
run: |
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/WebODM/NodeODM/actions/workflows/publish-docker.yml/dispatches --data '{"ref": "master"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/WebODM/oats/actions/workflows/test.yaml/dispatches --data '{"ref": "master"}'
15 changes: 1 addition & 14 deletions .github/workflows/publish-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ permissions:
jobs:
build:
runs-on: windows-2022
environment: azuresigning
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down Expand Up @@ -42,21 +41,9 @@ jobs:
rmdir SuperBuild\download /s /q
rmdir SuperBuild\build /s /q
shell: cmd
- name: Retrieve the metadata and decode it to a file
env:
AZURESIGNING_METADATA: ${{ secrets.AZURESIGNING_METADATA }}
run: |
echo $AZURESIGNING_METADATA | base64 --decode > "$RUNNER_TEMP\metadata.json"
shell: bash
- name: Azure login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Create setup
run: |
python configure.py dist --signtool-path "C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\signtool.exe" --azure-signing-metadata "%RUNNER_TEMP%\metadata.json"
python configure.py dist
shell: cmd
- name: Upload Setup File
uses: actions/upload-artifact@v4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,30 +24,26 @@ jobs:
platforms: linux/amd64
push: false

# snapcraft:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# architecture:
# - amd64
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Set Swap Space
# uses: pierotofy/set-swap-space@master
# with:
# swap-size-gb: 12
# - name: Build
# id: build
# uses: diddlesnaps/snapcraft-multiarch-action@v1
# with:
# architecture: ${{ matrix.architecture }}
# - name: Review
# uses: diddlesnaps/snapcraft-review-tools-action@v1
# with:
# snap: ${{ steps.build.outputs.snap }}
# isClassic: 'false'

docker_gpu:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 12
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build
uses: docker/build-push-action@v2
with:
file: ./gpu.Dockerfile
platforms: linux/amd64
push: false

windows:
runs-on: windows-2022
steps:
Expand Down
13 changes: 5 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM ubuntu:24.04 AS builder

# Env variables
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONPATH="$PYTHONPATH:/code/SuperBuild/install/local/lib/python3.12/dist-packages:/code/SuperBuild/install/lib/python3.12/dist-packages:/code/SuperBuild/install/bin/opensfm" \
PYTHONPATH="/code/SuperBuild/install/lib/python3.12/dist-packages:/code/SuperBuild/install/bin/opensfm" \
LD_LIBRARY_PATH="/code/SuperBuild/install/lib"

# Prepare directories
Expand All @@ -14,10 +14,6 @@ COPY . ./
# Run the build
RUN bash configure.sh install

# Run the tests
ENV PATH="/code/venv/bin:$PATH"
RUN bash test.sh

# Clean Superbuild
RUN bash configure.sh clean

Expand All @@ -29,7 +25,7 @@ FROM ubuntu:24.04

# Env variables
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONPATH="$PYTHONPATH:/code/SuperBuild/install/local/lib/python3.12/dist-packages:/code/SuperBuild/install/lib/python3.12/dist-packages:/code/SuperBuild/install/bin/opensfm" \
PYTHONPATH="/code/SuperBuild/install/lib/python3.12:/code/SuperBuild/install/bin/opensfm" \
LD_LIBRARY_PATH="/code/SuperBuild/install/lib" \
PDAL_DRIVER_PATH="/code/SuperBuild/install/bin"

Expand All @@ -38,12 +34,13 @@ WORKDIR /code
# Copy everything we built from the builder
COPY --from=builder /code /code

ENV PATH="/code/venv/bin:$PATH"
# Copy the Python libraries installed via pip from the builder
COPY --from=builder /usr/local /usr/local

# Install shared libraries that we depend on via APT, but *not*
# the -dev packages to save space!
# Also run a smoke test on ODM and OpenSfM
RUN bash configure.sh installruntimedepsonly \
RUN bash configure.sh installruntimedeps \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& bash run.sh --help \
Expand Down
Loading
Loading