Browse Source

Armv7 is totally outdated

Our assumption was that we need armv7 for running on an RPi. It turns out that Armv7 is totally outdated and only used on the old RPi 2 model B. The newer model RPi 2 model B v1.2 already uses Armv8
debug-collab-settlement
bonomat 3 years ago
parent
commit
6050be6b88
No known key found for this signature in database GPG Key ID: E5F8E74C672BC666
  1. 2
      .cargo/config.toml
  2. 27
      .github/workflows/build-release-binary.yml
  3. 19
      .github/workflows/ci.yml
  4. 7
      .github/workflows/release-docker.yml
  5. 8
      Dockerfile
  6. 3
      bors.toml
  7. 2
      rust-toolchain.toml

2
.cargo/config.toml

@ -1,4 +1,2 @@
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
[target.aarch64-unknown-linux-gnu] [target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc" linker = "aarch64-linux-gnu-gcc"

27
.github/workflows/build-release-binary.yml

@ -14,10 +14,6 @@ jobs:
target: x86_64-unknown-linux-gnu target: x86_64-unknown-linux-gnu
os: ubuntu-latest os: ubuntu-latest
archive_ext: tar archive_ext: tar
- bin: taker
target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
archive_ext: tar
- bin: taker - bin: taker
target: aarch64-unknown-linux-gnu target: aarch64-unknown-linux-gnu
os: ubuntu-latest os: ubuntu-latest
@ -30,10 +26,6 @@ jobs:
target: x86_64-unknown-linux-gnu target: x86_64-unknown-linux-gnu
os: ubuntu-latest os: ubuntu-latest
archive_ext: tar archive_ext: tar
- bin: maker
target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
archive_ext: tar
- bin: maker - bin: maker
target: aarch64-unknown-linux-gnu target: aarch64-unknown-linux-gnu
os: ubuntu-latest os: ubuntu-latest
@ -57,12 +49,6 @@ jobs:
with: with:
key: ${{ matrix.target }} key: ${{ matrix.target }}
- name: Install compiler for armhf arch
if: matrix.target == 'armv7-unknown-linux-gnueabihf'
run: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf
- name: Install compiler for aarch64 arch (armv8) - name: Install compiler for aarch64 arch (armv8)
if: matrix.target == 'aarch64-unknown-linux-gnu' if: matrix.target == 'aarch64-unknown-linux-gnu'
run: | run: |
@ -87,8 +73,8 @@ jobs:
run: cargo build --target=${{ matrix.target }} --release --bin ${{ matrix.bin }} run: cargo build --target=${{ matrix.target }} --release --bin ${{ matrix.bin }}
- name: Smoke test the binary - name: Smoke test the binary
# armv7-* and aarch64-* is only cross-compiled, no smoke test # aarch64-* is only cross-compiled, no smoke test
if: matrix.target != 'armv7-unknown-linux-gnueabihf' && matrix.target != 'aarch64-unknown-linux-gnu' if: matrix.target != 'aarch64-unknown-linux-gnu'
run: target/${{ matrix.target }}/release/${{ matrix.bin }} --help run: target/${{ matrix.target }}/release/${{ matrix.bin }} --help
# Remove once python 3 is the default # Remove once python 3 is the default
@ -166,7 +152,7 @@ jobs:
- name: Download release from github - name: Download release from github
run: | run: |
gh release download ${{ github.event.release.tag_name }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*' -p '${{matrix.bin}}*armv7*' gh release download ${{ github.event.release.tag_name }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*'
- name: Unpack archives - name: Unpack archives
run: | run: |
@ -174,13 +160,14 @@ jobs:
# #
# By providing `platform` to `docker buildx` the variable `TARGETPLATFORM` will be available # By providing `platform` to `docker buildx` the variable `TARGETPLATFORM` will be available
# when building the image. This variable is either # when building the image. This variable is either
# `linux/amd64/`, `linux/arm64/` or `linux/arm/v7`. Hence we need to extract into subfolders. # `linux/amd64/`, `linux/arm64/`. Hence we need to extract into subfolders.
7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_aarch64.tar -olinux/arm64/ 7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_aarch64.tar -olinux/arm64/
7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_x86_64.tar -olinux/amd64/ 7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_x86_64.tar -olinux/amd64/
7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_armv7.tar -olinux/arm/v7 chmod a+x linux/amd64/*
chmod a+x linux/arm64/*
- name: Build docker image for ${{matrix.bin}} - name: Build docker image for ${{matrix.bin}}
run: | run: |
@ -192,7 +179,7 @@ jobs:
docker buildx build \ docker buildx build \
--push \ --push \
--platform linux/amd64,linux/arm64,linux/arm/v7 \ --platform linux/amd64,linux/arm64 \
--label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \
--tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \ --tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \
--build-arg BINARY_PATH=${{matrix.bin}} \ --build-arg BINARY_PATH=${{matrix.bin}} \

19
.github/workflows/ci.yml

@ -125,32 +125,21 @@ jobs:
daemons_arm_build: daemons_arm_build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
include:
- target: armv7-unknown-linux-gnueabihf
- target: aarch64-unknown-linux-gnu
steps: steps:
- uses: actions/checkout@v2.4.0 - uses: actions/checkout@v2.4.0
- name: Setup rust toolchain - name: Setup rust toolchain
run: rustup show run: rustup show
- uses: Swatinem/rust-cache@v1.3.0 - uses: Swatinem/rust-cache@v1.3.0
- name: Install compiler for armhf arch
if: matrix.target == 'armv7-unknown-linux-gnueabihf'
run: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf
- name: Install compiler for aarch64 arch - name: Install compiler for aarch64 arch
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu sudo apt-get install gcc-aarch64-linux-gnu
- run: cargo build --target=${{ matrix.target }} --bins - run: cargo build --target=aarch64-unknown-linux-gnu --bins
- name: Upload binaries - name: Upload binaries
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: maker-and-taker-binaries-${{ matrix.target }} name: maker-and-taker-binaries-aarch64-unknown-linux-gnu
path: | path: |
target/${{ matrix.target }}/debug/maker target/aarch64-unknown-linux-gnu/debug/maker
target/${{ matrix.target }}/debug/taker target/aarch64-unknown-linux-gnu/debug/taker

7
.github/workflows/release-docker.yml

@ -40,7 +40,7 @@ jobs:
- name: Download release - name: Download release
run: | run: |
gh release download ${{ github.event.inputs.release_tag }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*' -p '${{matrix.bin}}*armv7*' gh release download ${{ github.event.inputs.release_tag }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*'
- name: Unpack archives - name: Unpack archives
run: | run: |
@ -54,7 +54,8 @@ jobs:
7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_x86_64.tar -olinux/amd64/ 7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_x86_64.tar -olinux/amd64/
7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_armv7.tar -olinux/arm/v7 chmod a+x linux/amd64/*
chmod a+x linux/arm64/*
- name: Build docker image for ${{matrix.bin}} - name: Build docker image for ${{matrix.bin}}
run: | run: |
@ -66,7 +67,7 @@ jobs:
docker buildx build \ docker buildx build \
--push \ --push \
--platform linux/amd64,linux/arm64,linux/arm/v7 \ --platform linux/amd64,linux/arm64 \
--label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \
--tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \ --tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \
--build-arg BINARY_PATH=${{matrix.bin}} \ --build-arg BINARY_PATH=${{matrix.bin}} \

8
Dockerfile

@ -5,15 +5,11 @@ LABEL org.opencontainers.image.source https://github.com/itchysats/itchysats
ARG TARGETPLATFORM ARG TARGETPLATFORM
ARG BINARY_PATH ARG BINARY_PATH
RUN echo "Copying $TARGETPLATFORM/$BINARY_PATH into container" COPY $TARGETPLATFORM/$BINARY_PATH /usr/bin/binary
COPY $TARGETPLATFORM/$BINARY_PATH binary
RUN chmod a+x binary
VOLUME data VOLUME data
# HTTP Port and P2P Port # HTTP Port and P2P Port
EXPOSE 8000 9999 EXPOSE 8000 9999
ENTRYPOINT ["/binary", "--data-dir=/data", "--http-address=0.0.0.0:8000"] ENTRYPOINT ["/usr/bin/binary", "--data-dir=/data", "--http-address=0.0.0.0:8000"]

3
bors.toml

@ -6,6 +6,5 @@ status = [
"build_and_test_maker_frontend", "build_and_test_maker_frontend",
"test_daemons (ubuntu-latest)", "test_daemons (ubuntu-latest)",
"test_daemons (macos-latest)", "test_daemons (macos-latest)",
"daemons_arm_build (armv7-unknown-linux-gnueabihf)", "daemons_arm_build",
"daemons_arm_build (aarch64-unknown-linux-gnu)",
] ]

2
rust-toolchain.toml

@ -1,4 +1,4 @@
[toolchain] [toolchain]
channel = "1.56" channel = "1.56"
components = ["clippy"] components = ["clippy"]
targets = ["armv7-unknown-linux-gnueabihf", "aarch64-unknown-linux-gnu"] targets = ["aarch64-unknown-linux-gnu"]

Loading…
Cancel
Save