Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split github tester actions to minimise disk use #497

Merged
merged 4 commits into from
Jan 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .github/workflows/001-tester-ubuntu-make-test-auraed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# ---------------------------------------------------------------------------- #
# Apache 2.0 License Copyright © 2022-2023 The Aurae Authors #
# #
# +--------------------------------------------+ #
# | █████╗ ██╗ ██╗██████╗ █████╗ ███████╗ | #
# | ██╔══██╗██║ ██║██╔══██╗██╔══██╗██╔════╝ | #
# | ███████║██║ ██║██████╔╝███████║█████╗ | #
# | ██╔══██║██║ ██║██╔══██╗██╔══██║██╔══╝ | #
# | ██║ ██║╚██████╔╝██║ ██║██║ ██║███████╗ | #
# | ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ | #
# +--------------------------------------------+ #
# #
# Distributed Systems Runtime #
# #
# ---------------------------------------------------------------------------- #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); #
# you may not use this file except in compliance with the License. #
# You may obtain a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
# #
# ---------------------------------------------------------------------------- #
#
# This is the main compile time check for Aurae.
#
# This build check will introduce confidence for the following:
#
# - That the binary does not have unexpected dependencies.
# - We intentionally build this on a clean ubuntu image, to prove that we can
# generate a static binary with minimal dependencies.
# - That the code does not warn (due to clippy errors/warnings)
#
# When this build passes we should have a "clean cargo" output!
#
name: "Tester (001) [ubuntu:latest] [auraed]"
on:
push:
branches: main
pull_request:
branches: main
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ github.token }}
version: 1.28.1
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: 000-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
000-${{ runner.os }}-cargo-
- name: Install protoc-gen-doc in [ubuntu:latest]
run: |
wget https://github.com/pseudomuto/protoc-gen-doc/releases/download/v1.5.1/protoc-gen-doc_1.5.1_linux_amd64.tar.gz
tar -xzf protoc-gen-doc_1.5.1_linux_amd64.tar.gz
chmod +x protoc-gen-doc
cp protoc-gen-doc /usr/local/bin/protoc-gen-doc
sudo apt-get update
sudo apt-get install -y protobuf-compiler
- name: Install compile time dependencies (musl-tools) in [ubuntu:latest]
#
# Do not add GNU libraries here! Do not add GNU libraries here!
#
# Please (seriously please) be careful about adding commands here.
# This is our core way of validating that our binary is "healthy"
# If we need to install anything with the word "lib" in it to get
# the build to pass, we likely should be having other discussions
# instead of adding commands here.
#
# Do not add GNU libraries here! Do not add GNU libraries here!
#
# For example, we should NOT be adding libraries such as "libseccomp"
# or "libdbus".
#
# If in doubt, please ask in Discord in the build channel.
#
# Do not at GNU libraries here! Do not add GNU libraries here!
run: |
sudo apt-get update
sudo apt-get install -y musl-tools
- name: Cargo build, lint, test [make test]
# This should remain the only command we execute as this matches the title of the file.
# The goal is for this to be easy to find from the GitHub dashboard.
# Instead of adding more commands here, consider another make target or a new YAML file
# named with a good name.
run: make auraed-test
104 changes: 104 additions & 0 deletions .github/workflows/002-tester-ubuntu-make-test-auraescript.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# ---------------------------------------------------------------------------- #
# Apache 2.0 License Copyright © 2022-2023 The Aurae Authors #
# #
# +--------------------------------------------+ #
# | █████╗ ██╗ ██╗██████╗ █████╗ ███████╗ | #
# | ██╔══██╗██║ ██║██╔══██╗██╔══██╗██╔════╝ | #
# | ███████║██║ ██║██████╔╝███████║█████╗ | #
# | ██╔══██║██║ ██║██╔══██╗██╔══██║██╔══╝ | #
# | ██║ ██║╚██████╔╝██║ ██║██║ ██║███████╗ | #
# | ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ | #
# +--------------------------------------------+ #
# #
# Distributed Systems Runtime #
# #
# ---------------------------------------------------------------------------- #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); #
# you may not use this file except in compliance with the License. #
# You may obtain a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
# #
# ---------------------------------------------------------------------------- #
#
# This is the main compile time check for Aurae.
#
# This build check will introduce confidence for the following:
#
# - That the binary does not have unexpected dependencies.
# - We intentionally build this on a clean ubuntu image, to prove that we can
# generate a static binary with minimal dependencies.
# - That the code does not warn (due to clippy errors/warnings)
#
# When this build passes we should have a "clean cargo" output!
#
name: "Tester (002) [ubuntu:latest] [auraescript]"
on:
push:
branches: main
pull_request:
branches: main
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ github.token }}
version: 1.28.1
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: 000-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
000-${{ runner.os }}-cargo-
- name: Install protoc-gen-doc in [ubuntu:latest]
run: |
wget https://github.com/pseudomuto/protoc-gen-doc/releases/download/v1.5.1/protoc-gen-doc_1.5.1_linux_amd64.tar.gz
tar -xzf protoc-gen-doc_1.5.1_linux_amd64.tar.gz
chmod +x protoc-gen-doc
cp protoc-gen-doc /usr/local/bin/protoc-gen-doc
sudo apt-get update
sudo apt-get install -y protobuf-compiler
- name: Install compile time dependencies (musl-tools) in [ubuntu:latest]
#
# Do not add GNU libraries here! Do not add GNU libraries here!
#
# Please (seriously please) be careful about adding commands here.
# This is our core way of validating that our binary is "healthy"
# If we need to install anything with the word "lib" in it to get
# the build to pass, we likely should be having other discussions
# instead of adding commands here.
#
# Do not add GNU libraries here! Do not add GNU libraries here!
#
# For example, we should NOT be adding libraries such as "libseccomp"
# or "libdbus".
#
# If in doubt, please ask in Discord in the build channel.
#
# Do not at GNU libraries here! Do not add GNU libraries here!
run: |
sudo apt-get update
sudo apt-get install -y musl-tools
- name: Cargo build, lint, test [make test]
# This should remain the only command we execute as this matches the title of the file.
# The goal is for this to be easy to find from the GitHub dashboard.
# Instead of adding more commands here, consider another make target or a new YAML file
# named with a good name.
run: make auraescript-test
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
#
# When this build passes we should have a "clean cargo" output!
#
name: "Tester (001) [ubuntu:latest]"
name: "Tester (003) [ubuntu:latest] [aer]"
on:
push:
branches: main
Expand Down Expand Up @@ -101,4 +101,4 @@ jobs:
# The goal is for this to be easy to find from the GitHub dashboard.
# Instead of adding more commands here, consider another make target or a new YAML file
# named with a good name.
run: make test
run: make aer-test
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# ---------------------------------------------------------------------------- #
# Apache 2.0 License Copyright © 2022-2023 The Aurae Authors #
# #
# +--------------------------------------------+ #
# | █████╗ ██╗ ██╗██████╗ █████╗ ███████╗ | #
# | ██╔══██╗██║ ██║██╔══██╗██╔══██╗██╔════╝ | #
# | ███████║██║ ██║██████╔╝███████║█████╗ | #
# | ██╔══██║██║ ██║██╔══██╗██╔══██║██╔══╝ | #
# | ██║ ██║╚██████╔╝██║ ██║██║ ██║███████╗ | #
# | ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ | #
# +--------------------------------------------+ #
# #
# Distributed Systems Runtime #
# #
# ---------------------------------------------------------------------------- #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); #
# you may not use this file except in compliance with the License. #
# You may obtain a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
# #
# ---------------------------------------------------------------------------- #
#
name: "Tester (101) [aurae-builder:builder-latest] [auraed]"
on:
push:
branches: main
pull_request:
branches: main

permissions:
contents: read
packages: write
env:
CARGO_TERM_COLOR: always
jobs:
build-container:
uses: ./.github/workflows/100-aurae-builder-image-docker-build-builder.yml
build:
name: Build (lint, compile, test)
runs-on: ubuntu-latest
needs: build-container
timeout-minutes: 30
container:
image: ghcr.io/${{ github.repository }}/aurae-builder:builder-latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: 100-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
100-${{ runner.os }}-cargo-
- name: Cargo Test [make pki config test]
# This should remain the only command we execute as this matches the title of the file.
# The goal is for this to be easy to find from the GitHub dashboard.
# Instead of adding more commands here, consider another make target or a new YAML file
# named with a good name.
run: make pki config auraed-test
Loading
Loading