change min length to 1 (not restricting min length) (#747) #74
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a golang project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go | |
name: Go | |
on: | |
push: | |
branches: | |
- main | |
- 'release/**' | |
pull_request: | |
branches: | |
- main | |
- 'release/**' | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
TEST_KUBECTL: yes | |
TEST_MINIKUBE_ENABLED: yes | |
TEST_MQTT_LOCAL_ENABLED: yes | |
TEST_DOCKER_ENABLED: yes | |
TEST_K8S_STATE: yes | |
TEST_SYMPHONY_HELM_VERSION: yes | |
TEST_HELM_CHART: yes | |
TEST_CONFIGMAP: yes # requires minikube start | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.4 | |
- name: Set up custom GOPATH | |
run: | | |
mkdir -p /home/runner/go | |
echo "export GOPATH=/home/runner/go" >> $HOME/.bashrc | |
echo "export PATH=\$PATH:\$GOPATH/bin" >> $HOME/.bashrc | |
source $HOME/.bashrc | |
- name: Install make | |
run: sudo apt-get update && sudo apt-get install -y build-essential | |
- name: Check docker version and images | |
run: docker version && docker images | |
- name: Install dependencies | |
run: | | |
sudo apt-get update && sudo apt-get install -y \ | |
gcc g++ make curl wget git protobuf-compiler \ | |
llvm clang \ | |
zlib1g-dev libcurl4-openssl-dev \ | |
libxml2-dev uuid-dev \ | |
gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu \ | |
libssl-dev pkg-config mingw-w64 | |
sudo snap install yq | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Install Rust targets | |
run: | | |
rustup target add aarch64-unknown-linux-gnu | |
rustup target add armv7-unknown-linux-gnueabihf | |
rustup target add x86_64-pc-windows-gnu | |
rustup target add x86_64-apple-darwin | |
rustup target add x86_64-unknown-linux-gnu | |
- name: Install kubectl | |
run: | | |
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" | |
chmod +x kubectl | |
sudo mv ./kubectl /usr/local/bin/kubectl | |
kubectl version --client | |
kubectl config view | |
- name: Install minikube | |
run: | | |
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 | |
chmod +x minikube | |
sudo mv minikube /usr/local/bin/ | |
minikube start | |
kubectl config view | |
- name: Install Mqtt | |
run: | | |
sudo apt-get update | |
sudo apt-get install mosquitto mosquitto-clients | |
sudo service mosquitto start | |
sudo service mosquitto status | |
- name: Install Mage | |
run: | | |
cd .. | |
git clone https://github.com/magefile/mage | |
cd mage | |
go run bootstrap.go | |
cd .. | |
- name: Clean up docker | |
run: | | |
docker system prune -a -f | |
docker volume prune -f | |
docker builder prune -a -f | |
- name: Free up disk space | |
run: | | |
sudo apt-get clean | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /usr/share/swift | |
- name: COA Test | |
run: cd coa && mage cleanTest | |
- name: Build Rust bindings | |
run: | | |
cd api/pkg/apis/v1alpha1/providers/target/rust | |
cargo build --release --target x86_64-unknown-linux-gnu | |
- name: API Build | |
run: cd api && CGO_ENABLED=1 GOARCH=amd64 GOOS=linux CC=gcc LD_LIBRARY=./pkg/apis/v1alpha1/providers/target/rust/target/x86_64-unknown-linux-gnu/release CGO_LDFLAGS=-L./pkg/apis/v1alpha1/providers/target/rust/target/x86_64-unknown-linux-gnu/release go build -o symphony-api | |
- name: API Test | |
run: | | |
echo "TEST_KUBECTL:$TEST_KUBECTL TEST_MINIKUBE_ENABLED:$TEST_MINIKUBE_ENABLED TEST_K8S_STATE: $TEST_K8S_STATE TEST_CONFIGMAP: $TEST_CONFIGMAP" | |
export REPOPATH="${{ github.workspace }}" | |
echo "REPOPATH=$REPOPATH" | |
export DOCKER_API_VERSION=1.45 | |
cd api && mage cleanTest | |
- name: K8S Test | |
run: cd k8s && mage operatorTest | |
- name: target-api-testcoverage-app | |
run: | | |
cd api | |
COVERAGE=`mage printCoverage` | |
echo "coverage=$COVERAGE" | |
go tool cover -html=coverage.out -o coverage-api.html | |
continue-on-error: true | |
if: always() | |
- name: target-k8s-testcoverage-app | |
run: | | |
cd k8s | |
COVERAGE=`mage printCoverage` | |
echo "coverage=$COVERAGE" | |
go tool cover -html=coverage.out -o coverage-k8s.html | |
continue-on-error: true | |
if: always() | |
- name: target-coa-testcoverage-app | |
run: | | |
cd coa | |
COVERAGE=`mage printCoverage` | |
echo "coverage=$COVERAGE" | |
go tool cover -html=coverage.out -o coverage-coa.html | |
continue-on-error: true | |
if: always() | |
- name: Upload test assets | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-coverage | |
path: | | |
api/coverage-api.html | |
k8s/coverage-k8s.html | |
coa/coverage-coa.html |