Skip to content

Commit

Permalink
Merge pull request #17 from bottlerocket-os/ci
Browse files Browse the repository at this point in the history
setup continuous integration
  • Loading branch information
srgothi92 authored Jan 26, 2021
2 parents 78d96ba + 27c1c22 commit 830e94e
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/cache-bust
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# this file provides a manual way to clear out github actions caches. any change
# to this file will cause all github action caches to miss. increment the number
# below by 1 if you need to clear the caches.
1
55 changes: 55 additions & 0 deletions .github/workflows/updater-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Updater CI
on:
pull_request:
paths-ignore:
- '**.md'
branches: ['*']
push:
paths-ignore:
- '**.md'
branches: [develop]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Cargo Home Cache
uses: actions/cache@v2
env:
cache-name: cargo-home
with:
path: /usr/share/rust/.cargo
key: ${{ hashFiles('.github/cache-bust', '/usr/share/rust/.cargo/bin/cargo') }}-${{ hashFiles('updater/Cargo.lock', 'integ/Cargo.lock') }}
restore-keys: |
${{ hashFiles('.github/cache-bust', '/usr/share/rust/.cargo/bin/cargo') }}-${{ hashFiles('updater/Cargo.lock', 'integ/Cargo.lock') }}
${{ hashFiles('.github/cache-bust', '/usr/share/rust/.cargo/bin/cargo') }}-
- name: Updater Build Cache
uses: actions/cache@v2
env:
cache-name: updater-target
with:
path: updater/target
key: ${{ hashFiles('.github/cache-bust') }}-${{ hashFiles('updater/Cargo.lock') }}
restore-keys: |
${{ hashFiles('.github/cache-bust') }}-
- name: Integ Build Cache
uses: actions/cache@v2
env:
cache-name: integ-target
with:
path: integ/target
key: ${{ hashFiles('.github/cache-bust') }}-${{ hashFiles('integ/Cargo.lock') }}
restore-keys: |
${{ hashFiles('.github/cache-bust') }}-
- run: rustup update stable && cargo install cargo-deny
- run: make ci

image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: make image
25 changes: 25 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,28 @@ image: fetch-sdk
.PHONY: fetch-sdk
fetch-sdk: # fetches and loads the image we use to build the updater docker image
scripts/load-bottlerocket-sdk.sh --site ${BOTTLEROCKET_SDK_SITE} --image ${BUILDER_IMAGE}

.PHONY: check-licenses
check-licenses:
cd updater && cargo deny check licenses
cd integ && cargo deny check licenses

.PHONY: unit-tests
unit-tests:
cd updater && cargo test --locked
cd integ && cargo test --locked

.PHONY: build
build:
cd updater && cargo build --locked
cd integ && cargo build --locked

.PHONY: lint
lint:
cd updater && cargo fmt -- --check
cd updater && cargo clippy --locked -- -D warnings
cd integ && cargo fmt -- --check
cd integ && cargo clippy --locked -- -D warnings

.PHONY: ci # these are all of the checks (except for image) that we run for ci
ci: check-licenses lint build unit-tests
38 changes: 38 additions & 0 deletions integ/deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[licenses]
unlicensed = "deny"

# Deny licenses unless they are specifically listed here
copyleft = "deny"
allow-osi-fsf-free = "neither"
default = "deny"

# We want really high confidence when inferring licenses from text
confidence-threshold = 0.93

# Licenses that are allowed but unused are commented out to silence warnings
allow = [
"Apache-2.0",
#"BSD-2-Clause",
"BSD-3-Clause",
"BSL-1.0",
#"CC0-1.0",
#"ISC",
"MIT",
# OpenSSL",
"Unlicense",
"Zlib"
]

[[licenses.clarify]]
name = "ring"
expression = "MIT AND ISC AND OpenSSL"
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 },
]

[[licenses.clarify]]
name = "webpki"
expression = "ISC"
license-files = [
{ path = "LICENSE", hash = 0x001c7e6c },
]
38 changes: 38 additions & 0 deletions updater/deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[licenses]
unlicensed = "deny"

# Deny licenses unless they are specifically listed here
copyleft = "deny"
allow-osi-fsf-free = "neither"
default = "deny"

# We want really high confidence when inferring licenses from text
confidence-threshold = 0.93

# Licenses that are allowed but unused are commented out to silence warnings
allow = [
"Apache-2.0",
#"BSD-2-Clause",
"BSD-3-Clause",
"BSL-1.0",
#"CC0-1.0",
"ISC",
"MIT",
"OpenSSL",
"Unlicense",
"Zlib"
]

[[licenses.clarify]]
name = "ring"
expression = "MIT AND ISC AND OpenSSL"
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 },
]

[[licenses.clarify]]
name = "webpki"
expression = "ISC"
license-files = [
{ path = "LICENSE", hash = 0x001c7e6c },
]

0 comments on commit 830e94e

Please sign in to comment.