Skip to content

fix: Allow "global" Attribute #89

fix: Allow "global" Attribute

fix: Allow "global" Attribute #89

Workflow file for this run

name: CI
on:
push:
# Run on the main branch
branches:
- main
- stable
# Also on PRs, just be careful not to publish anything
pull_request:
branches:
- main
- stable
# Allow to be called from other workflows (like "release")
workflow_call:
# But don't trigger on tags, as they are covered by the "release.yaml" workflow
# The overall idea is to be quick, but re-use output from previous steps.
# The quickest checks is formatting, so we do that first. Next is integration, and ci. For ci we split up backend
# and frontend, because they are somewhat independent.
#
# For the backend part, we run check, clippy, and test as they build upon each other. For the frontend, we run
# check and clippy, but test as a dedicated job, as we don't have a WASM test runner. Yet, check and clippy for wasm32
# are different.
jobs:
formatting:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Check formatting
run: |
cargo fmt --check
cargo fmt --check --manifest-path bommer/bommer-ui/Cargo.toml
cargo fmt --check --manifest-path spog/ui/Cargo.toml
uncommitted:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Check if templates have uncommitted changes
run: |
pip3 install yq
make -C deploy/openshift
git diff --quiet deploy/openshift
if [ $? -gt 0 ]; then
echo "::error::Uncommitted changes to deploy/openshift (most likely template must be updated by running `make`)"
exit 1
fi
- name: Check if values schema has uncommitted changes
working-directory: deploy/k8s
run: |
python3 -c 'import sys, yaml, json; print(json.dumps(yaml.safe_load(sys.stdin)))' < charts/trustification/values.schema.yaml > charts/trustification/values.schema.json
git diff --quiet charts/trustification
if [ $? -gt 0 ]; then
echo "::error::Uncommitted changes to deploy/k8s/charts/trustification/values.schema.json"
exit 1
fi
helm-lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: azure/setup-helm@v3
with:
version: v3.13.2
- name: add helm repositories
working-directory: deploy/k8s
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: install helm dependencies
working-directory: deploy/k8s
run: |
helm dependency build charts/trustification
- name: helm-lint (minikube)
working-directory: deploy/k8s
run: |
helm lint ./charts/trustification --values values-minikube.yaml --set-string appDomain=.localhost
- name: helm-lint (ocp-no-aws)
working-directory: deploy/k8s
run: |
helm lint ./charts/trustification --values values-ocp-no-aws.yaml --set-string appDomain=.localhost
- name: helm-lint (ocp-aws)
working-directory: deploy/k8s
run: |
helm lint ./charts/trustification --values values-ocp-aws.yaml --values values-ocp-aws-lint.yaml --set-string appDomain=.localhost
- name: helm-lint (branding)
working-directory: deploy/k8s
run: |
helm lint ./charts/trustification-branding
# also lint the deprecated charts for now
- name: helm-lint-deprecated (staging)
working-directory: deploy/k8s
run: |
helm lint ./chart -f ../trustification.dev/staging.yaml
- name: helm-lint-deprecated (prod)
working-directory: deploy/k8s
run: |
helm lint ./chart -f ../trustification.dev/prod.yaml
ci-backend:
runs-on: ubuntu-22.04
needs:
- formatting
steps:
- name: Maximize build space
run: |
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo rm -Rf ${JAVA_HOME_8_X64}
sudo rm -Rf ${JAVA_HOME_11_X64}
sudo rm -Rf ${JAVA_HOME_17_X64}
sudo rm -Rf ${RUBY_PATH}
df -h
- uses: actions/checkout@v4
- run: rustup component add clippy
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
bommer/bommer-ui/target/
spog/ui/target/
key: ${{ runner.os }}-cargo-backend-${{ hashFiles('**/Cargo.lock') }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get install -y libsasl2-dev
- name: Check
run: cargo check
- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Test
run: cargo test
ci-frontend-check:
runs-on: ubuntu-22.04
needs:
- formatting
steps:
- uses: actions/checkout@v4
- run: rustup component add clippy
- run: rustup target add wasm32-unknown-unknown
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
bommer/bommer-ui/target/
spog/ui/target/
key: ${{ runner.os }}-cargo-frontend-check-${{ hashFiles('**/Cargo.lock') }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check
run: |
cargo check --target wasm32-unknown-unknown --manifest-path bommer/bommer-ui/Cargo.toml
cargo check --target wasm32-unknown-unknown --manifest-path spog/ui/Cargo.toml
- name: Clippy
run: |
cargo clippy --target wasm32-unknown-unknown --all-targets --all-features --manifest-path bommer/bommer-ui/Cargo.toml -- -D warnings
cargo clippy --target wasm32-unknown-unknown --all-targets --all-features --manifest-path spog/ui/Cargo.toml -- -D warnings
ci-frontend-test:
runs-on: ubuntu-22.04
needs:
- formatting
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
bommer/bommer-ui/target/
spog/ui/target/
key: ${{ runner.os }}-cargo-frontend-test-${{ hashFiles('**/Cargo.lock') }}
- name: Test
run: |
cargo test --manifest-path bommer/bommer-ui/Cargo.toml
cargo test --manifest-path spog/ui/Cargo.toml
integration:
needs:
- formatting
uses: ./.github/workflows/integration.yaml
unit:
needs:
- formatting
uses: ./.github/workflows/unit.yaml
# A virtual job, referenced by the branch protection rule
ci:
runs-on: ubuntu-22.04
needs:
- ci-backend
- ci-frontend-check
- ci-frontend-test
- integration
- helm-lint
- uncommitted
steps:
- run: echo 🎉