Skip to content

Releases: awslabs/aws-crt-builder

FreeBSD support, arch aliases, full config tree merging

05 Mar 22:26
56ca92e
Compare
Choose a tag to compare
FreeBSD support and config compilation (#15)

* Added support for FreeBSD

* Added darwin -> macos aliases

* Fleshed out arch/os aliases, normalize targets always

* Added aliases for FreeBSD/OSX uname -m arch

* Try harder to divine branch when github lies to us

* Always normalize toolchain platform

* Install docker in ubuntu image for cross compile

* Make sanity tests check for platform normalization via armv8

* Make sure compiler installation happens at package installation time

* Fixed where path shenanigans

* Finally got the courage to just recursively process config trees

* Resolve symlinks when looking up executables

Complete cross-compile support

04 Mar 18:07
2490477
Compare
Choose a tag to compare
Fixes found porting java/cpp/python (#14)

* Removed toolchain dependence on env, and simplified arg parsing, always work from source_dir

* Make sure docker images are re-generated for every PR to builder

* base dirs off source_dir, not launch_dir

* Fixed config mashing

* Added output when selecting git branch

* Reduced redundant cmake args

* Removed redundant cmake_binaries option

* Ensure that download script in docker images busts the cloudfront cache

* Added util to API

* Moved libcrypto to using python for download/tarball

* Prevent GC from destroying our late loaded classes

* Fixed env in cross-compile container

* All S3 uploads have .pyz extension

* Containers must download with .pyz extension

* Scoped build_env, pre_build_env, and post_build_env to just those steps

Cross-compile support for ARM

03 Mar 01:28
4fc2c78
Compare
Choose a tag to compare
Use cross-compile + qemu instead of buildx docker images (#12)

* Use dockcross for cross compiling

* Removed pushd/popd shenanigans, all commands take paths relative to launch dir/--build-dir now

* Added script to produce cross-compiled libcrypto

* Added imports to builder

* Added cross compile to sanity tests

* Re-enabled cached docker builds since we don't need buildx

* Added support for debian

* Allow build/test steps to contain action names

* Fixed bug where local builds would be unable to find their installed deps

* Added the ability for targets to export variables to other projects' configs with late binding

* Made dependencies and consumers also late binding

GCC, Maven, ARM fixes

27 Feb 00:22
aa2d4c6
Compare
Choose a tag to compare
gcc package fixes, maven pre-caching, less docker builds (#13)

* Fixed gcc compiler ending up in packages

* Cut the default timeouts way down on maven operations to hopefully speed up retries on ARM hosts with shitty networking

* ARM targets will pre-cache maven dependencies

* Pull builder from cloudfront, don't rebuild images on builder changes

* Updated README

Fixed libcrypto in docker images, added C++ support

26 Feb 05:54
cb0a204
Compare
Choose a tag to compare
Fixed libcrypto in docker containers, misc C++ fixes (#11)

* Fixed how libcrypto and cmake are applied to images

* Make sure packages/compiler_packages can be per-package tool

* Added support for --branch argument to specify a specific branch

* Fix to allow projects to empty out build/test steps

* Use path to compiler for C/C++ when telling cmake

* Re-enabled c++ compiler installation by default

* Fixed package names for gcc packages

Recursive submodule checkout support

25 Feb 22:11
5c34029
Compare
Choose a tag to compare
v0.4.4

Always checkout submodules recursively (#10)

ARM support, command line fixes

25 Feb 21:50
3da1c76
Compare
Choose a tag to compare
ARM Raspbian/Alpine/AL2 Images and package installation/CLI fixes (#9)

* Added more knowledge of package managers

* Fixed argument parsing FOR REAL THIS TIME

* Added sanity test for both ways of running an action

* Massive clean up of docker image stuff

* Use make -j 3 on arm builds

* Fixed sudo installs on manylinux

* Always build images the same way

* Switched all builds to using downloaded binaries for libcrypto

* Use pre-compiled cmake binaries from S3 on manylinux

* Added a short wait to retries

* Fixed case where projects were not always re-resolved, resulting in a loss of path info

* Added raspbian support/detection

ARMv6-8 support, bug fixes

20 Feb 05:53
8e33def
Compare
Choose a tag to compare
ARMv6-8 support (#8)

* Install buildx in the action image

* configure buildx

* Added armv6, arm64, generalized arm image

* Added ARM downstream tests

* Use pre-built binaries from S3 for libcrypto

* Build should fail if cmake or ctest fail

* Fixed arm detection

* Added alpine as a detectable distro

* Retries were broken if the command exited cleanly

* Bind fuzz tests only to compilers that support them

* Added alpine host config

* Compilers should read their architecture config

* Preserve target filters across ProjectReference resolution

* Validate arch

* Added workflow for creating base images

* Forget about raspbian for now

* No fuzz tests on mac by default

* Fixed arg parsing

* Move cmake args to macos target

Better config parsing, cleaned up project/shell code

15 Feb 01:10
2806670
Compare
Choose a tag to compare
Fixes for issues encountered converting Java CRT (#7)

* manylinux doesn't use sudo

* Fixed weird dependencies between project and config, project has a config now

* Fixed shell encoding, added support for splitting command strings automagically

* Allow projects from another directory, fixed config stomping

* Mapped clang versions -> deb repos, fixed excess newlines on windows

* Added support for command retries, added docs

Major re-work, lots of fixes to platform, unification of actions vs build

14 Feb 01:19
ee0613b
Compare
Choose a tag to compare
More fixes from updating aws-crt-python (#6)

* Allow clang to use a default version

* Fixed logic for when project is reloaded after download

* Added better debugging of project resolution

* Added robust clang/gcc compiler detection

* Added a sanity test before kicking off docker jobs

* Added support for apple clang

* Fixed spec -> toolchain in cmake

* Use vswhere to find VS on windows

* Load scripts at any level in .builder

* Exposed more classes via Builder

* Fixed buffering/output issues with exec()

* Make sure submodules are always synced

* Dump inspect output always

* Fail job if a script command has a non-0 exit code

* Apply configs from platform, then host

* Fixed up arg parsing for actions, added --compiler and --target

* Fixed default compiler output when compiler is not installed yet

* Export compiler after installing it

* moved compiler concerns into InstallCompiler

* Fixed script output when no new classes are loaded