Add Docker based CI pipeline
This commit is contained in:
parent
6fa56ed4cd
commit
b2c9a293da
|
@ -0,0 +1,2 @@
|
||||||
|
target/
|
||||||
|
Dockerfile
|
|
@ -0,0 +1,25 @@
|
||||||
|
name: Test suite
|
||||||
|
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: "0 2 * * 1-5"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Prepare the AVR Rust build environment
|
||||||
|
run:
|
||||||
|
docker build . --file Dockerfile.ci --tag avr-rust/ruduino.ci:$GITHUB_RUN_NUMBER
|
||||||
|
|
||||||
|
- name: Compile the crate
|
||||||
|
run:
|
||||||
|
docker run avr-rust/ruduino.ci:$GITHUB_RUN_NUMBER
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
|
RUN useradd -m avr-rust
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN apt-get update -y && apt-get install -y wget gcc binutils gcc-avr avr-libc
|
||||||
|
|
||||||
|
RUN mkdir -p /code && chown avr-rust:avr-rust /code
|
||||||
|
|
||||||
|
USER avr-rust
|
||||||
|
|
||||||
|
# Install Rustup along with nightly
|
||||||
|
RUN wget -q https://sh.rustup.rs -O /tmp/rustup.sh && sh /tmp/rustup.sh -y --profile minimal --default-toolchain nightly -c rust-src --quiet
|
||||||
|
ENV PATH=/home/avr-rust/.cargo/bin:$PATH
|
||||||
|
|
||||||
|
COPY --chown=avr-rust:avr-rust . /code/ruduino
|
||||||
|
|
||||||
|
WORKDIR /code/ruduino
|
||||||
|
|
||||||
|
CMD ["cargo", "build", "-Z", "build-std=core", "--target", "avr-atmega328p.json", "--release"]
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"arch": "avr",
|
||||||
|
"cpu": "atmega328p",
|
||||||
|
"data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8",
|
||||||
|
"env": "",
|
||||||
|
"executables": true,
|
||||||
|
"linker": "avr-gcc",
|
||||||
|
"linker-flavor": "gcc",
|
||||||
|
"linker-is-gnu": true,
|
||||||
|
"llvm-target": "avr-unknown-unknown",
|
||||||
|
"no-compiler-rt": true,
|
||||||
|
"os": "unknown",
|
||||||
|
"position-independent-executables": false,
|
||||||
|
"exe-suffix": ".elf",
|
||||||
|
"eh-frame-header": false,
|
||||||
|
"pre-link-args": {
|
||||||
|
"gcc": [
|
||||||
|
"-Os",
|
||||||
|
"-mmcu=atmega328p"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"late-link-args": {
|
||||||
|
"gcc": [
|
||||||
|
"-lc",
|
||||||
|
"-lgcc"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"target-c-int-width": "16",
|
||||||
|
"target-endian": "little",
|
||||||
|
"target-pointer-width": "16",
|
||||||
|
"vendor": "unknown"
|
||||||
|
}
|
Loading…
Reference in New Issue