Try everything
This commit is contained in:
parent
0e9ed54697
commit
40ef62da52
42
.github/workflows/build-amd64.yml
vendored
Normal file
42
.github/workflows/build-amd64.yml
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
name: Build amd64
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- ".github/workflows/build-amd64.yml"
|
||||
- "Dockerfile"
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- "README.md"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
with:
|
||||
install: true
|
||||
version: latest
|
||||
driver-opts: image=moby/buildkit:master
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: roxedus
|
||||
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
file: ./Dockerfile
|
||||
tags: |
|
||||
roxedus/playground:hass-amd64
|
54
.github/workflows/build-amd64.yml2
vendored
54
.github/workflows/build-amd64.yml2
vendored
@ -1,54 +0,0 @@
|
||||
name: Build amd64
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
BUILDKIT_HOST: tcp://0.0.0.0:1234
|
||||
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||
DOCKER_IMAGE: hass-wheel-builder
|
||||
DOCKER_TAG: latest
|
||||
PLATFORM_1: amd64
|
||||
PLATFORM_2: arm
|
||||
PLATFORM_3: arm64
|
||||
REPO: tobbenb/hass-wheel-builder-test
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Getting buildkit
|
||||
run: |
|
||||
sudo docker run --privileged linuxkit/binfmt:v0.7
|
||||
sudo docker run -d --privileged -p 1234:1234 --name buildkit moby/buildkit:latest --addr tcp://0.0.0.0:1234 \
|
||||
--oci-worker-platform linux/${PLATFORM_1}
|
||||
sudo docker cp buildkit:/usr/bin/buildctl /usr/bin/
|
||||
|
||||
- name: Build amd64
|
||||
env:
|
||||
DOCKERFILE_LOCATION: ./Dockerfile
|
||||
run: |
|
||||
buildctl build --frontend dockerfile.v0 \
|
||||
--opt platform=linux/${PLATFORM_1} \
|
||||
--opt filename=./${DOCKERFILE_LOCATION} \
|
||||
--output type=docker,name=${REPO}:${DOCKER_TAG}-${PLATFORM_1} \
|
||||
--local dockerfile=. \
|
||||
--local context=. | docker load
|
||||
|
||||
- name: Export build artifact
|
||||
run: |
|
||||
sudo mkdir -p /artifact
|
||||
sudo docker run --rm -v /artifact:/mnt tobbenb/hass-wheel-builder-test:latest-amd64
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: amd64
|
||||
path: /artifact/wheel-repo-x86_64.tar.gz
|
30
Dockerfile
30
Dockerfile
@ -1,4 +1,4 @@
|
||||
FROM lsiobase/alpine:3.12
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:amd64-3.12 as buildstage
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -12,11 +12,14 @@ LABEL maintainer="saarg"
|
||||
ENV HOME="/tmp"
|
||||
|
||||
# install packages
|
||||
# https://github.com/home-assistant/core/blob/11d74124cd06f48c1faf68df9a2ab9034130fafa/azure-pipelines-wheels.yml#L32
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apk add --no-cache --virtual=build-dependencies \
|
||||
autoconf \
|
||||
bluez-deprecated \
|
||||
bluez-dev \
|
||||
build-base \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
@ -25,9 +28,10 @@ RUN \
|
||||
eudev-libs \
|
||||
ffmpeg \
|
||||
ffmpeg-dev \
|
||||
gcc \
|
||||
glib-dev \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
glib-dev \
|
||||
jq \
|
||||
libffi-dev \
|
||||
libjpeg-turbo \
|
||||
@ -36,6 +40,7 @@ RUN \
|
||||
libxml2-dev \
|
||||
libxslt \
|
||||
libxslt-dev \
|
||||
linux-headers \
|
||||
make \
|
||||
openssl \
|
||||
openssl-dev \
|
||||
@ -67,20 +72,22 @@ RUN \
|
||||
/build/addons \
|
||||
/build/core && \
|
||||
pip3 install --no-cache-dir --upgrade \
|
||||
pip
|
||||
pip==20.3 # https://github.com/home-assistant/core/pull/43771
|
||||
|
||||
RUN \
|
||||
echo "**** build wheels for home assistant core ****" && \
|
||||
awk '/# Home Assistant core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \
|
||||
awk '/# Home Assistant Core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \
|
||||
awk '/# homeassistant.components.trend/,/^$/' /tmp/core/requirements_all.txt >> /tmp/requirements_hass.txt && \
|
||||
pip3 wheel --wheel-dir=/build/core --no-cache-dir \
|
||||
sed -i "s/-r requirements.txt/-r \/tmp\/core\/requirements.txt/g" /tmp/requirements_hass.txt && \
|
||||
pip3 wheel --wheel-dir=/build/core --no-cache-dir --use-deprecated=legacy-resolver \
|
||||
-r /tmp/requirements_hass.txt
|
||||
|
||||
# https://github.com/home-assistant/core/issues/43934 >> https://github.com/home-assistant/core/pull/36330
|
||||
RUN \
|
||||
echo "**** build wheels for home assistant addons ****" && \
|
||||
sed -i "s/-r requirements_test.txt/-r \/tmp\/core\/requirements_test.txt/g" /tmp/core/requirements_test_all.txt && \
|
||||
sed -i "s/-r requirements_test_pre_commit.txt/-r \/tmp\/core\/requirements_test_pre_commit.txt/g" /tmp/core/requirements_test.txt && \
|
||||
pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core \
|
||||
pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core --use-deprecated=legacy-resolver \
|
||||
-r /tmp/core/requirements_test_all.txt
|
||||
|
||||
RUN \
|
||||
@ -98,7 +105,7 @@ RUN \
|
||||
tar xf \
|
||||
/tmp/hacs.tar.gz -C \
|
||||
/tmp/hacs-source --strip-components=1 && \
|
||||
pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons \
|
||||
pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons --use-deprecated=legacy-resolver \
|
||||
-r /tmp/hacs-source/requirements.txt
|
||||
|
||||
RUN \
|
||||
@ -106,7 +113,8 @@ RUN \
|
||||
/tmp/repo && \
|
||||
mv /build/addons/* /tmp/repo/ && \
|
||||
mv /build/core/* /tmp/repo/ && \
|
||||
mv /build/hacs/* /tmp/repo/ && \
|
||||
tar zcf /tmp/wheel-repo-x86_64.tar.gz /tmp/repo
|
||||
mv /build/hacs/* /tmp/repo/
|
||||
|
||||
CMD ["cp", "-avr", "/tmp/wheel-repo-x86_64.tar.gz", "/mnt/"]
|
||||
FROM scratch
|
||||
|
||||
COPY --from=buildstage /tmp/repo /
|
||||
|
@ -12,11 +12,14 @@ LABEL maintainer="saarg"
|
||||
ENV HOME="/tmp"
|
||||
|
||||
# install packages
|
||||
# https://github.com/home-assistant/core/blob/11d74124cd06f48c1faf68df9a2ab9034130fafa/azure-pipelines-wheels.yml#L32
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apk add --no-cache --virtual=build-dependencies \
|
||||
autoconf \
|
||||
bluez-deprecated \
|
||||
bluez-dev \
|
||||
build-base \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
@ -25,9 +28,10 @@ RUN \
|
||||
eudev-libs \
|
||||
ffmpeg \
|
||||
ffmpeg-dev \
|
||||
gcc \
|
||||
glib-dev \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
glib-dev \
|
||||
jq \
|
||||
libffi-dev \
|
||||
libjpeg-turbo \
|
||||
@ -36,6 +40,7 @@ RUN \
|
||||
libxml2-dev \
|
||||
libxslt \
|
||||
libxslt-dev \
|
||||
linux-headers \
|
||||
make \
|
||||
openssl \
|
||||
openssl-dev \
|
||||
@ -67,20 +72,22 @@ RUN \
|
||||
/build/addons \
|
||||
/build/core && \
|
||||
pip3 install --no-cache-dir --upgrade \
|
||||
pip
|
||||
pip==20.3 # https://github.com/home-assistant/core/pull/43771
|
||||
|
||||
RUN \
|
||||
echo "**** build wheels for home assistant core ****" && \
|
||||
awk '/# Home Assistant core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \
|
||||
awk '/# Home Assistant Core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \
|
||||
awk '/# homeassistant.components.trend/,/^$/' /tmp/core/requirements_all.txt >> /tmp/requirements_hass.txt && \
|
||||
pip3 wheel --wheel-dir=/build/core --no-cache-dir \
|
||||
sed -i "s/-r requirements.txt/-r \/tmp\/core\/requirements.txt/g" /tmp/requirements_hass.txt && \
|
||||
pip3 wheel --wheel-dir=/build/core --no-cache-dir --use-deprecated=legacy-resolver \
|
||||
-r /tmp/requirements_hass.txt
|
||||
|
||||
# https://github.com/home-assistant/core/issues/43934 >> https://github.com/home-assistant/core/pull/36330
|
||||
RUN \
|
||||
echo "**** build wheels for home assistant addons ****" && \
|
||||
sed -i "s/-r requirements_test.txt/-r \/tmp\/core\/requirements_test.txt/g" /tmp/core/requirements_test_all.txt && \
|
||||
sed -i "s/-r requirements_test_pre_commit.txt/-r \/tmp\/core\/requirements_test_pre_commit.txt/g" /tmp/core/requirements_test.txt && \
|
||||
pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core \
|
||||
pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core --use-deprecated=legacy-resolver \
|
||||
-r /tmp/core/requirements_test_all.txt
|
||||
|
||||
RUN \
|
||||
@ -98,7 +105,7 @@ RUN \
|
||||
tar xf \
|
||||
/tmp/hacs.tar.gz -C \
|
||||
/tmp/hacs-source --strip-components=1 && \
|
||||
pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons \
|
||||
pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons --use-deprecated=legacy-resolver \
|
||||
-r /tmp/hacs-source/requirements.txt
|
||||
|
||||
RUN \
|
||||
@ -110,4 +117,4 @@ RUN \
|
||||
|
||||
FROM scratch
|
||||
|
||||
COPY --from=buildstage /tmp/ /
|
||||
COPY --from=buildstage /tmp/repo /
|
||||
|
Loading…
Reference in New Issue
Block a user