Try everything

This commit is contained in:
Roxedus 2020-12-27 15:29:41 +01:00
parent 0e9ed54697
commit 40ef62da52
Signed by: Roxedus
GPG Key ID: 9B4E311961C63639
4 changed files with 142 additions and 139 deletions

42
.github/workflows/build-amd64.yml vendored Normal file
View 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

View File

@ -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

View File

@ -1,4 +1,4 @@
FROM lsiobase/alpine:3.12 FROM ghcr.io/linuxserver/baseimage-alpine:amd64-3.12 as buildstage
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -12,11 +12,14 @@ LABEL maintainer="saarg"
ENV HOME="/tmp" ENV HOME="/tmp"
# install packages # install packages
# https://github.com/home-assistant/core/blob/11d74124cd06f48c1faf68df9a2ab9034130fafa/azure-pipelines-wheels.yml#L32
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \ apk add --no-cache --virtual=build-dependencies \
autoconf \ autoconf \
bluez-deprecated \ bluez-deprecated \
bluez-dev \
build-base \
ca-certificates \ ca-certificates \
cmake \ cmake \
curl \ curl \
@ -25,9 +28,10 @@ RUN \
eudev-libs \ eudev-libs \
ffmpeg \ ffmpeg \
ffmpeg-dev \ ffmpeg-dev \
gcc \
glib-dev \
g++ \ g++ \
gcc \
git \
glib-dev \
jq \ jq \
libffi-dev \ libffi-dev \
libjpeg-turbo \ libjpeg-turbo \
@ -36,6 +40,7 @@ RUN \
libxml2-dev \ libxml2-dev \
libxslt \ libxslt \
libxslt-dev \ libxslt-dev \
linux-headers \
make \ make \
openssl \ openssl \
openssl-dev \ openssl-dev \
@ -67,20 +72,22 @@ RUN \
/build/addons \ /build/addons \
/build/core && \ /build/core && \
pip3 install --no-cache-dir --upgrade \ pip3 install --no-cache-dir --upgrade \
pip pip==20.3 # https://github.com/home-assistant/core/pull/43771
RUN \ RUN \
echo "**** build wheels for home assistant core ****" && \ 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 && \ 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 -r /tmp/requirements_hass.txt
# https://github.com/home-assistant/core/issues/43934 >> https://github.com/home-assistant/core/pull/36330
RUN \ RUN \
echo "**** build wheels for home assistant addons ****" && \ 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.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 && \ 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 -r /tmp/core/requirements_test_all.txt
RUN \ RUN \
@ -98,7 +105,7 @@ RUN \
tar xf \ tar xf \
/tmp/hacs.tar.gz -C \ /tmp/hacs.tar.gz -C \
/tmp/hacs-source --strip-components=1 && \ /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 -r /tmp/hacs-source/requirements.txt
RUN \ RUN \
@ -106,7 +113,8 @@ RUN \
/tmp/repo && \ /tmp/repo && \
mv /build/addons/* /tmp/repo/ && \ mv /build/addons/* /tmp/repo/ && \
mv /build/core/* /tmp/repo/ && \ mv /build/core/* /tmp/repo/ && \
mv /build/hacs/* /tmp/repo/ && \ mv /build/hacs/* /tmp/repo/
tar zcf /tmp/wheel-repo-x86_64.tar.gz /tmp/repo
CMD ["cp", "-avr", "/tmp/wheel-repo-x86_64.tar.gz", "/mnt/"] FROM scratch
COPY --from=buildstage /tmp/repo /

View File

@ -12,11 +12,14 @@ LABEL maintainer="saarg"
ENV HOME="/tmp" ENV HOME="/tmp"
# install packages # install packages
# https://github.com/home-assistant/core/blob/11d74124cd06f48c1faf68df9a2ab9034130fafa/azure-pipelines-wheels.yml#L32
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \ apk add --no-cache --virtual=build-dependencies \
autoconf \ autoconf \
bluez-deprecated \ bluez-deprecated \
bluez-dev \
build-base \
ca-certificates \ ca-certificates \
cmake \ cmake \
curl \ curl \
@ -25,9 +28,10 @@ RUN \
eudev-libs \ eudev-libs \
ffmpeg \ ffmpeg \
ffmpeg-dev \ ffmpeg-dev \
gcc \
glib-dev \
g++ \ g++ \
gcc \
git \
glib-dev \
jq \ jq \
libffi-dev \ libffi-dev \
libjpeg-turbo \ libjpeg-turbo \
@ -36,6 +40,7 @@ RUN \
libxml2-dev \ libxml2-dev \
libxslt \ libxslt \
libxslt-dev \ libxslt-dev \
linux-headers \
make \ make \
openssl \ openssl \
openssl-dev \ openssl-dev \
@ -67,20 +72,22 @@ RUN \
/build/addons \ /build/addons \
/build/core && \ /build/core && \
pip3 install --no-cache-dir --upgrade \ pip3 install --no-cache-dir --upgrade \
pip pip==20.3 # https://github.com/home-assistant/core/pull/43771
RUN \ RUN \
echo "**** build wheels for home assistant core ****" && \ 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 && \ 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 -r /tmp/requirements_hass.txt
# https://github.com/home-assistant/core/issues/43934 >> https://github.com/home-assistant/core/pull/36330
RUN \ RUN \
echo "**** build wheels for home assistant addons ****" && \ 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.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 && \ 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 -r /tmp/core/requirements_test_all.txt
RUN \ RUN \
@ -98,7 +105,7 @@ RUN \
tar xf \ tar xf \
/tmp/hacs.tar.gz -C \ /tmp/hacs.tar.gz -C \
/tmp/hacs-source --strip-components=1 && \ /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 -r /tmp/hacs-source/requirements.txt
RUN \ RUN \
@ -110,4 +117,4 @@ RUN \
FROM scratch FROM scratch
COPY --from=buildstage /tmp/ / COPY --from=buildstage /tmp/repo /