Skip to content

Commit 0a50b84

Browse files
authored
Merge pull request #260 from freeswitch/arm64
[GHA] Add `arm64v8` build target.
2 parents 995a68d + a32e571 commit 0a50b84

File tree

4 files changed

+203
-0
lines changed

4 files changed

+203
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
ARG BUILDER_IMAGE=arm64v8/debian:bookworm
2+
ARG MAINTAINER="Andrey Volk <[email protected]>"
3+
4+
FROM ${BUILDER_IMAGE} AS builder
5+
6+
ARG BUILD_NUMBER=42
7+
ARG GIT_SHA=0000000000
8+
9+
MAINTAINER ${MAINTAINER}
10+
11+
SHELL ["/bin/bash", "-c"]
12+
13+
RUN apt-get -q update && \
14+
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
15+
apt-transport-https \
16+
build-essential \
17+
ca-certificates \
18+
cmake \
19+
curl \
20+
debhelper \
21+
devscripts \
22+
dh-autoreconf \
23+
dos2unix \
24+
doxygen \
25+
git \
26+
graphviz \
27+
libglib2.0-dev \
28+
libssl-dev \
29+
lsb-release \
30+
pkg-config \
31+
wget
32+
33+
RUN update-ca-certificates --fresh
34+
35+
ENV DATA_DIR=/data
36+
WORKDIR ${DATA_DIR}
37+
38+
COPY . ${DATA_DIR}
39+
RUN git reset --hard HEAD && git clean -xfd
40+
41+
RUN echo "export CODENAME=$(lsb_release -sc | tr -d '\n')" | tee ~/.env && \
42+
chmod +x ~/.env
43+
44+
RUN git config --global --add safe.directory '*'
45+
46+
# Bootstrap and Build
47+
RUN echo "export VERSION=$(dpkg-parsechangelog --show-field Version | cut -f1 -d'-')" | tee -a ~/.env
48+
RUN . ~/.env && dch \
49+
--controlmaint \
50+
--distribution "${CODENAME}" \
51+
--force-bad-version \
52+
--force-distribution \
53+
--newversion "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
54+
"Nightly build, ${GIT_SHA}"
55+
56+
RUN apt-get -q update && \
57+
mk-build-deps --install --remove debian/control --tool "apt-get -y --no-install-recommends" && \
58+
apt-get -y -f install
59+
60+
ENV DEB_BUILD_OPTIONS="parallel=1"
61+
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
62+
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
63+
RUN debuild -b -us -uc && mkdir OUT && mv -v ../*.deb OUT/.
64+
65+
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
66+
FROM scratch
67+
COPY --from=builder /data/OUT/ /
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
ARG BUILDER_IMAGE=arm64v8/debian:bullseye
2+
ARG MAINTAINER="Andrey Volk <[email protected]>"
3+
4+
FROM ${BUILDER_IMAGE} AS builder
5+
6+
ARG BUILD_NUMBER=42
7+
ARG GIT_SHA=0000000000
8+
9+
MAINTAINER ${MAINTAINER}
10+
11+
SHELL ["/bin/bash", "-c"]
12+
13+
RUN apt-get -q update && \
14+
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
15+
apt-transport-https \
16+
build-essential \
17+
ca-certificates \
18+
cmake \
19+
curl \
20+
debhelper \
21+
devscripts \
22+
dh-autoreconf \
23+
dos2unix \
24+
doxygen \
25+
git \
26+
graphviz \
27+
libglib2.0-dev \
28+
libssl-dev \
29+
lsb-release \
30+
pkg-config \
31+
wget
32+
33+
RUN update-ca-certificates --fresh
34+
35+
ENV DATA_DIR=/data
36+
WORKDIR ${DATA_DIR}
37+
38+
COPY . ${DATA_DIR}
39+
RUN git reset --hard HEAD && git clean -xfd
40+
41+
RUN echo "export CODENAME=$(lsb_release -sc | tr -d '\n')" | tee ~/.env && \
42+
chmod +x ~/.env
43+
44+
RUN git config --global --add safe.directory '*'
45+
46+
# Bootstrap and Build
47+
RUN echo "export VERSION=$(dpkg-parsechangelog --show-field Version | cut -f1 -d'-')" | tee -a ~/.env
48+
RUN . ~/.env && dch \
49+
--controlmaint \
50+
--distribution "${CODENAME}" \
51+
--force-bad-version \
52+
--force-distribution \
53+
--newversion "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
54+
"Nightly build, ${GIT_SHA}"
55+
56+
RUN apt-get -q update && \
57+
mk-build-deps --install --remove debian/control --tool "apt-get -y --no-install-recommends" && \
58+
apt-get -y -f install
59+
60+
ENV DEB_BUILD_OPTIONS="parallel=1"
61+
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
62+
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
63+
RUN debuild -b -us -uc && mkdir OUT && mv -v ../*.deb OUT/.
64+
65+
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
66+
FROM scratch
67+
COPY --from=builder /data/OUT/ /
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
ARG BUILDER_IMAGE=arm64v8/debian:buster
2+
ARG MAINTAINER="Andrey Volk <[email protected]>"
3+
4+
FROM ${BUILDER_IMAGE} AS builder
5+
6+
ARG BUILD_NUMBER=42
7+
ARG GIT_SHA=0000000000
8+
9+
MAINTAINER ${MAINTAINER}
10+
11+
SHELL ["/bin/bash", "-c"]
12+
13+
RUN apt-get -q update && \
14+
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
15+
apt-transport-https \
16+
build-essential \
17+
ca-certificates \
18+
cmake \
19+
curl \
20+
debhelper \
21+
devscripts \
22+
dh-autoreconf \
23+
dos2unix \
24+
doxygen \
25+
git \
26+
graphviz \
27+
libglib2.0-dev \
28+
libssl-dev \
29+
lsb-release \
30+
pkg-config \
31+
wget
32+
33+
RUN update-ca-certificates --fresh
34+
35+
ENV DATA_DIR=/data
36+
WORKDIR ${DATA_DIR}
37+
38+
COPY . ${DATA_DIR}
39+
RUN git reset --hard HEAD && git clean -xfd
40+
41+
RUN echo "export CODENAME=$(lsb_release -sc | tr -d '\n')" | tee ~/.env && \
42+
chmod +x ~/.env
43+
44+
RUN git config --global --add safe.directory '*'
45+
46+
# Bootstrap and Build
47+
RUN echo "export VERSION=$(dpkg-parsechangelog --show-field Version | cut -f1 -d'-')" | tee -a ~/.env
48+
RUN . ~/.env && dch \
49+
--controlmaint \
50+
--distribution "${CODENAME}" \
51+
--force-bad-version \
52+
--force-distribution \
53+
--newversion "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
54+
"Nightly build, ${GIT_SHA}"
55+
56+
RUN apt-get -q update && \
57+
mk-build-deps --install --remove debian/control --tool "apt-get -y --no-install-recommends" && \
58+
apt-get -y -f install
59+
60+
ENV DEB_BUILD_OPTIONS="parallel=1"
61+
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
62+
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
63+
RUN debuild -b -us -uc && mkdir OUT && mv -v ../*.deb OUT/.
64+
65+
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
66+
FROM scratch
67+
COPY --from=builder /data/OUT/ /

.github/workflows/cicd.yml

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ jobs:
3535
runner: ubuntu-latest
3636
- name: arm32v7
3737
runner: ubuntu-latest
38+
- name: arm64v8
39+
runner: ubuntu-latest
3840
# exclude:
3941
# - version: bookworm
4042
# platform:

0 commit comments

Comments
 (0)