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:
parent
ec363d2d41
commit
8fe3403de0
|
@ -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"
|
|
@ -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
|
|
@ -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.
|
Loading…
Reference in New Issue