https://github.com/danielmschmidt/cdktf-local-build
A construct that encapsulates different building methods, e.g. for Node, Rust, Docker.
https://github.com/danielmschmidt/cdktf-local-build
Last synced: 12 months ago
JSON representation
A construct that encapsulates different building methods, e.g. for Node, Rust, Docker.
- Host: GitHub
- URL: https://github.com/danielmschmidt/cdktf-local-build
- Owner: DanielMSchmidt
- License: apache-2.0
- Created: 2021-12-30T19:59:01.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-24T00:08:31.000Z (about 4 years ago)
- Last Synced: 2024-11-13T02:21:40.323Z (over 1 year ago)
- Language: TypeScript
- Size: 1.19 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CDKTF Local Build Construct
A simple construct that runs builds for different languages locally.
Currently, it supports: docker. I plan on adding rust (cargo) and node (npm) support as well.
## Usage
```ts
import { Provider, DockerBuild, DockerizedBuild } from "cdktf-local-build";
// Local Build extends LocalExec which extends from the null provider,
// so if you already have the provider initialized you can skip this step
new Provider(this, "local-build");
new DockerBuild(this, "docker-backend", {
cwd: "/path/to/project/backend",
dockerfile: "Dockerfile.backend",
image: "cdktf/backend:latest",
push: false, // defaults to true
});
new DockerizedBuild(this, "my-go-backend", {
cwd: "/path/to/project/backend",
command: "go build -o /tmp/backend",
imageHomeDirectory: "/tmp/backend",
platform: "linux/arm64",
image: "go-builder-image:latest",
setUser: true,
});
```
### `DockerBuild`
Builds a docker image locally.
#### Options
- `cwd`: The working directory to run the command in.
- `dockerfile`: The Dockerfile to use.
- `image`: The tag to use for the image.
- `push`: If true, `docker push ` is executed after the run.
### `DockerizedBuild`
Build an artifact inside a docker image.
#### Options
- `cwd`: The working directory to run the command in.
- `command`: Build command to run int the docker image.
- `image`: The tag to use for the building image.
- `imageHomeDirectory`: The home directory to use inside the image.
- `platform`: The platform to build for (sets docker platform flag).
- `setUser`: If true, the user will be set to the current user inside docker.
### `CrossBuild`
Builds a rust binary using cross (cross runs it inside a docker container).
Please make sure [cross](https://github.com/cross-rs/cross) is installed on the host machine by running `cargo install cross`.
#### Options
- `arch`: The architecture to build for (`arm` or `x86`).
- `projectName`: The name specified in the Cargo.toml.
- `cwd`: The working directory to run the command in.