Compare commits

...

3 commits

Author SHA1 Message Date
Andreas Mieke 3c614f48bd
Version 1.0.0
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
First working version of Docker image
2024-07-26 11:37:52 -04:00
Andreas Mieke 89495dabd1
chore: Add content to README
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-07-26 11:37:34 -04:00
Andreas Mieke cb4958ae3f
feat(build): Add Docker build
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-07-26 05:49:36 -04:00
5 changed files with 3048 additions and 2 deletions

39
.woodpecker.yml Normal file
View file

@ -0,0 +1,39 @@
steps:
build:
image: woodpeckerci/plugin-docker-buildx
settings:
dry-run: true
repo: git.merp.digital/${CI_REPO_OWNER}/${CI_REPO_NAME}
platforms: linux/amd64
registry: git.merp.digital
when:
- event: push
branch:
exclude: [develop, master]
publish-nightly:
image: woodpeckerci/plugin-docker-buildx
settings:
repo: git.merp.digital/${CI_REPO_OWNER}/${CI_REPO_NAME}
platforms: linux/amd64
registry: git.merp.digital
tags: develop
username: ${CI_REPO_OWNER}
password:
from_secret: cb_token
when:
- event: push
branch: develop
publish-release:
image: woodpeckerci/plugin-docker-buildx
settings:
repo: git.merp.digital/${CI_REPO_OWNER}/${CI_REPO_NAME}
platforms: linux/amd64
registry: git.merp.digital
tags: ["latest", "${CI_COMMIT_TAG}"]
username: ${CI_REPO_OWNER}
password:
from_secret: cb_token
when:
- event: tag

9
Dockerfile Normal file
View file

@ -0,0 +1,9 @@
FROM ghcr.io/cross-rs/mips-unknown-linux-musl:latest
RUN apt update && apt install -y git wget subversion build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-core unzip libssl-dev python-dev python-pip libxml-parser-perl time
RUN git clone https://github.com/OnionIoT/source.git
COPY openwrt-build-config source/.config
ENV FORCE_UNSAFE_CONFIGURE=1
RUN cd source && make -j12

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 zenermerps
Copyright (c) 2024 zenermerps (Andreas Mieke)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View file

@ -1,3 +1,35 @@
# onion2s-build
Docker image for cross to build rust packages for the Onion Omega 2S(+)
Docker image for cross to build rust packages for the Onion Omega 2S(+)
## Prerequisites
You will need to have the rustup version of cargo installed, for more information look at the official Rust documentation. You need Docker (or Podman) up and running, and you need to install cross with:
```sh
cargo install cross --git https://github.com/cross-rs/cross
```
## Configuration
To compile for the Onion Omega 2S(+) you need to add the following configuration:
Cargo.toml:
```toml
[workspace.metadata.cross.target.mipsel-unknown-linux-musl]
image = "git.merp.digital/zenermerps/onion2s-build:latest"
build-std = ["std"]
```
.cargo/config:
```toml
[target.mipsel-unknown-linux-musl]
linker = "/source/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-musl-gcc"
```
_Note_: cargo will complain that this location is deprecated, however (at least on macOS) moving the file to the suggested location results in an error about `Cargo.toml` not being found (while a `cargo.toml` exists). I assume this is due to some discrepancy between macOS's case-insensitive vs Linux's case-sensistive file system.
## Build
You then can use `cross` as replacement for `cargo`, you need to specify the target with: `--target mipsel-unknown-linux-musl`, this is all you need to compile for the Onion Omega 2S(+).
For example:
```sh
cross build --release --target mipsel-unknown-linux-musl
```

2966
openwrt-build-config Normal file

File diff suppressed because it is too large Load diff