diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | justfile | 27 |
3 files changed, 16 insertions, 13 deletions
@@ -6,6 +6,7 @@ _build _dist _flatpak _repo +_vendor dist .env .flatpak-builder @@ -55,6 +55,7 @@ configurable via the justfile. The defaults are: - `_build`: The meson build directory. - `_dist`: The location where built distributable packages are placed. +- `_vendor`: The default location in which to output vendored cargo files. - `_repo`: The flatpak repo - `_flatpak`: The flatpak build directory @@ -5,6 +5,7 @@ app_name := "map" channel := "unstable" builddir := "_build" distdir := "_dist" +vendordir := "_vendor" flatpakdir := "_flatpak" repodir := "_repo" clean_images := "" @@ -79,7 +80,7 @@ build-container name: # Builds all containers build-containers: - for container in {{all_containers}}; do just container_image_prefix={{container_image_prefix}} clean_images={{clean_images}} build-container "$container"; done + for container in {{all_containers}}; do podman build -t "{{container_image_prefix}}:$container" "build-containers/$container"; done # Packaging #################################################################### @@ -106,7 +107,7 @@ package-appimage: _ensure-distdir (build-container appimage_container) dist _fet tar -xJf "{{builddir}}/meson-dist/map-{{version}}.tar.xz" -C "${staging}/" cp {{linuxdeploy}} "${staging}/linuxdeploy.AppImage" - just _run-in-podman "${staging}" {{appimage_container}} " + just _run-in-podman {{container_image_prefix}} "${staging}" {{appimage_container}} " cd /build/map-{{version}} meson setup --prefix=/usr {{builddir}} meson compile -C {{builddir}} @@ -131,7 +132,7 @@ package-arch: _ensure-distdir (build-container "arch") dist && (_clean-image "ar cp {{builddir}}/meson-dist/map-{{version}}.tar.xz "${staging}/" cp build-aux/arch/PKGBUILD "${staging}/" - just _run-in-podman "${staging}" arch " + just _run-in-podman {{container_image_prefix}} "${staging}" arch " mkdir -p /tmp/pkg cp /build/*.tar.xz /tmp/pkg cp /build/PKGBUILD /tmp/pkg @@ -144,20 +145,20 @@ package-arch: _ensure-distdir (build-container "arch") dist && (_clean-image "ar rm -rf "${staging}" # Build .rpm for the given distro -package-rpm distro: _ensure-distdir (build-container distro) dist && (_clean-image distro) +package-rpm distro: _ensure-distdir (build-container distro) dist vendor && (_clean-image distro) #!/usr/bin/env bash echo "=== Building RPM for {{distro}} ({{architecture}}) ===" staging="$(mktemp -d)" cp {{builddir}}/meson-dist/map-{{version}}.tar.xz "${staging}/" - just vendor "${staging}/vendor" + cp -r {{vendordir}} "${staging}/vendor" tar -cJf "${staging}/map-{{version}}-vendor.tar.xz" -C "${staging}" vendor rm -rf "${staging}/vendor" cp build-aux/rpm/map.spec "${staging}/" - just _run-in-podman "${staging}" {{distro}} " + just _run-in-podman {{container_image_prefix}} "${staging}" {{distro}} " mkdir -p ~/rpmbuild/{SOURCES,SPECS} cp /build/map-*.tar.xz ~/rpmbuild/SOURCES/ cp /build/map.spec ~/rpmbuild/SPECS/ @@ -179,7 +180,7 @@ package-deb distro: _ensure-distdir (build-container distro) dist && (_clean-ima mkdir -p "${staging}/{{app_name}}-{{version}}" cp -r build-aux/debian "${staging}/{{app_name}}-{{version}}/debian" - just _run-in-podman "${staging}" {{distro}} " + just _run-in-podman {{container_image_prefix}} "${staging}" {{distro}} " cd /build/{{app_name}}-{{version}} dpkg-buildpackage -us -uc -b mkdir -p /build/out @@ -212,11 +213,11 @@ distribute-arch: (_sign-and-upload f"{{distdir}}/{{filename}}-arch.pkg.tar.gz") # Sign and upload .rpm files distribute-rpm: - for distro in {{fedora_versions}}; do just _distribute-rpm channel={{channel}} "$distro"; done + for distro in {{fedora_versions}}; do just channel={{channel}} _distribute-rpm "$distro"; done # Sign and upload .deb files distribute-deb: - for distro in {{debian_versions}}; do just _distribute-deb channel={{channel}} "$distro"; done + for distro in {{debian_versions}}; do just channel={{channel}} _distribute-deb "$distro"; done # Sign and upload all distributable packages distribute: distribute-flatpak distribute-appimage distribute-arch distribute-rpm distribute-deb @@ -255,8 +256,8 @@ uninstall: # Utility Tasks ################################################################ # Vendor the rust dependencies -vendor location: - cargo vendor {{location}} >/dev/null +vendor: + cargo vendor {{vendordir}} >/dev/null mkdir -p .cargo # Syncs versions of different files to the meson.build @@ -308,7 +309,7 @@ _upload file: _sign-and-upload file: (_sign file channel architecture) (_upload file) # Generic Podman Runner: Run a build script inside a container -_run-in-podman staging tag commands: +_run-in-podman prefix staging tag commands: podman run --rm -v "{{staging}}:/build:Z" \ - {{container_image_prefix}}:{{tag}} \ + {{prefix}}:{{tag}} \ bash -c "{{commands}}" |