# builder **Repository Path**: hassiocn/builder ## Basic Information - **Project Name**: builder - **Description**: hass的基础构建脚本 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-18 - **Last Updated**: 2021-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Home Assistant builder _Multi-purpose cross-compile docker builder._ ## GitHub Action You can use this repository as a GitHub action to test and/or publish your builds. Use the `with.args` key to pass in arguments to the builder, to see what arguments are supported you can look at the [arguments](#Arguments) section. ### Test action example ```yaml name: "Test" on: [push, pull_request] jobs: build: name: Test build runs-on: ubuntu-latest steps: - name: Checkout the repository uses: actions/checkout@v2 - name: Test build uses: home-assistant/builder@master with: args: | --test \ --all \ --target addon-folder \ --docker-hub user-name-or-space-name ``` ### Publish action example ```yaml name: "Publish" on: release: types: [published] jobs: publish: name: Publish runs-on: ubuntu-latest steps: - name: Checkout the repository uses: actions/checkout@v2 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Publish uses: home-assistant/builder@master with: args: | --all \ --target addon-folder \ --docker-hub user-name-or-space-name ``` ## Arguments ``` Options: -h, --help Display this help and exit. Repository / Data -r, --repository Set git repository to load data from. -b, --branch Set git branch for repository. -t, --target Set local folder or path inside repository for build. Version/Image handling -v, --version Overwrite version/tag of build. -i, --image Overwrite image name of build / support {arch}. --release Additional version information like for base images. --release-tag Use this as main tag. --version-from Use this to set build_from tag if not specified. Architecture --armhf Build for arm v6. --armv7 Build for arm v7. --amd64 Build for intel/amd 64bit. --aarch64 Build for arm 64bit. --i386 Build for intel/amd 32bit. --all Build all architecture. Build handling --test Disable push to dockerhub. --no-latest Do not tag images as latest. --no-cache Disable cache for the build (from latest). --self-cache Use same tag as cache tag instead latest. --cache-tag Use a custom tag for the build cache. -d, --docker-hub Set or overwrite the docker repository. --docker-hub-check Check if the version already exists before starting the build. --docker-user Username to login into docker with --docker-password Password to login into docker with Use the host docker socket if mapped into container: /var/run/docker.sock Internals: --addon Default on. Run all things for an addon build. --generic Build based on the build.json --base Build our base images. --machine Build the machine based image for a release/landingpage. Security: --with-codenotary Enable signing images with CodeNotary. Need set follow env: --validate-cache Validate the cache image which is used to build the image. ``` ## Local installation amd64: ```bash docker pull homeassistant/amd64-builder ``` armv7/armhf: ```bash docker pull homeassistant/armv7-builder ``` aarch64: ```bash docker pull homeassistant/aarch64-builder ``` ## Run **For remote git repository:** ```bash docker run \ --rm \ --privileged \ -v ~/.docker:/root/.docker \ homeassistant/amd64-builder \ --all \ -t addon-folder \ -r https://github.com/xy/addons \ -b branchname ``` **For local git repository:** ```bash docker run \ --rm \ --privileged \ -v ~/.docker:/root/.docker \ -v /my_addon:/data \ homeassistant/amd64-builder \ --all \ -t /data ``` ## Docker Daemon By default, the image will run docker-in-docker. You can use the host docker daemon by bind mounting the host docker socket to `/var/run/docker.sock` inside the container. For example, to do this with the _Local repository_ example above (assuming the host docker socket is at `/var/run/docker.sock`: ```bash docker run \ --rm \ --privileged \ -v ~/.docker:/root/.docker \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /my_addon:/data \ homeassistant/amd64-builder \ --all \ -t /data ``` ## Help ```bash docker run --rm --privileged homeassistant/amd64-builder --help ```