Continuous integration (#2)

* Add CI workflow similar to other zebra

* Bump cache TTL to 24hours

* Expand image name to include full repo owner/repo-name/branch-name

* Force to lowercase because google container registry demands it

This may not be universally shell compatible

* Use bash as gcloud action container entrypoint
This commit is contained in:
Deirdre Connolly 2019-09-05 13:08:48 -04:00 committed by GitHub
parent ec363d2d41
commit 8fe3403de0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 57 additions and 0 deletions

24
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: CI
on: [push]
jobs:
build:
name: Google Cloud Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- run:
- name: Authenticate w/ Google Cloud
uses: actions/gcloud/auth@master
env:
GCLOUD_AUTH: ${{ secrets.GCLOUD_AUTH }}
- name: Build, Test, Push to GCR
uses: actions/gcloud/cli@master
with:
entrypoint: bash
args: |
-l -c "BRANCH_NAME=$GITHUB_REPOSITORY/$(expr $GITHUB_REF : '.*/\(.*\)') && \
BRANCH_NAME=${BRANCH_NAME,,} && \
gcloud builds submit . --config cloudbuild.yaml --project zealous-zebra --substitutions BRANCH_NAME=$BRANCH_NAME"

22
Dockerfile Normal file
View File

@ -0,0 +1,22 @@
FROM rust:stretch as base
RUN apt-get update && \
apt-get install -y --no-install-recommends \
make cmake g++ gcc
RUN mkdir /zebra
WORKDIR /zebra
ENV RUST_BACKTRACE 1
ENV CARGO_HOME /zebra/.cargo/
# Copy local code to the container image.
# Assumes that we are in the git repo.
COPY . .
RUN cargo fetch --verbose
COPY . .
RUN rustc -V; cargo -V; rustup -V; cargo test --all && cargo build --release

11
cloudbuild.yaml Normal file
View File

@ -0,0 +1,11 @@
steps:
- name: 'gcr.io/kaniko-project/executor:latest'
args:
- --destination=gcr.io/$PROJECT_ID/$BRANCH_NAME
- --cache=true
- --cache-ttl=24h
options:
machineType: 'N1_HIGHCPU_32'
timeout: 3600s # One hour for all steps.