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:
Vadim Kaushan 2020-08-31 23:12:18 +03:00 committed by GitHub
parent b13925f7ab
commit a008c38078
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 60 additions and 3 deletions

11
.github/actions/docker/action.yml vendored Normal file
View 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
View 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

View File

@ -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

View File

@ -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
View 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