Add GitHub Actions CI rules (#70)
* Prepare Dockerfile for GitHub Actions * Add Action * Add CI rules * Move docker files into the docker directory to prevent fetching build artifacts * Cache Docker layers Co-authored-by: aanper <mail@s3f.ru>
This commit is contained in:
parent
b13925f7ab
commit
a008c38078
11
.github/actions/docker/action.yml
vendored
Normal file
11
.github/actions/docker/action.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
name: 'Run in docker'
|
||||||
|
inputs:
|
||||||
|
run: # id of input
|
||||||
|
description: 'A command to run'
|
||||||
|
required: true
|
||||||
|
default: ''
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: '../../../docker/Dockerfile'
|
||||||
|
args:
|
||||||
|
- ${{ inputs.run }}
|
29
.github/workflows/ci.yml
vendored
Normal file
29
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: 'CI'
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Cache Docker layers
|
||||||
|
uses: satackey/action-docker-layer-caching@v0.0.8
|
||||||
|
|
||||||
|
- name: Build docker image
|
||||||
|
uses: ./.github/actions/docker
|
||||||
|
|
||||||
|
- name: Build target_lo in docker
|
||||||
|
uses: ./.github/actions/docker
|
||||||
|
with:
|
||||||
|
run: make -C target_lo
|
||||||
|
|
||||||
|
- name: Build target_f1 in docker
|
||||||
|
uses: ./.github/actions/docker
|
||||||
|
with:
|
||||||
|
run: make -C target_f1
|
@ -1,7 +1,7 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
dev:
|
dev:
|
||||||
build: .
|
build: docker
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
privileged: true
|
privileged: true
|
||||||
tty: true
|
tty: true
|
||||||
|
@ -22,5 +22,5 @@ RUN apt-get update && \
|
|||||||
|
|
||||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal --target thumbv7em-none-eabi thumbv7em-none-eabihf
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal --target thumbv7em-none-eabi thumbv7em-none-eabihf
|
||||||
|
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
ENV USER=root
|
ENTRYPOINT ["/entrypoint.sh"]
|
17
docker/entrypoint.sh
Executable file
17
docker/entrypoint.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# A hack for GitHub Actions to not install Rust twice
|
||||||
|
if [ "$HOME" != "/root" ]; then
|
||||||
|
ln -sf /root/.rustup "$HOME/.rustup"
|
||||||
|
ln -sf /root/.cargo "$HOME/.cargo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH="$HOME/.cargo/bin:${PATH}"
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
bash
|
||||||
|
else
|
||||||
|
echo "Running $1"
|
||||||
|
set -ex
|
||||||
|
bash -c "$1"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user