blob: bade3519996865f7ac7e0f0f69fe306e050d9183 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
version: "3"
vars:
BASEVER: "0.1.0"
VARIANT: "dev"
VERSION:
sh: git describe --tags --abbrev=0 2>/dev/null || git rev-parse --short HEAD
DEBUG: ""
tasks:
default: task -l
setup: { silent:true }
tag:
desc: tag the cli to generate the build
cmds:
- git tag -d $(git tag)
- echo "{{.BASEVER}}-$(date +%y%m%d%H%M).{{.VARIANT}}" >version.txt
- echo "{{.BASEVER}}" >branch.txt
- git add version.txt branch.txt
- git commit -m "$(cat version.txt)" || true
- git tag -f "v$(cat version.txt)"
trigger:
desc: create tag and push triggering a build
prompt: did you commit everyting?
cmds:
- git diff --exit-code
- task: tag
- git push origin main --tags
rebuild:
- rm -f ops
- task: build
build:
aliases: [b]
desc: build ops locally
cmds:
- echo building {{.VERSION}}
- go build {{.DEBUG}} ./cmd/ops/
sources:
- "*.go"
- "*/*.go"
- version.txt
- branch.txt
generates:
- ops
debug:
aliases: [d]
cmds:
- task: build
vars:
DEBUG: "-gcflags '-l -N'"
- dlv exec ./ops -- {{.CLI_ARGS}}
install:
aliases: [i]
desc: install ops in ~./local/bin
deps:
- build
cmds:
- mkdir -p $HOME/.local/bin
- cp -v ops $HOME/.local/bin
- |
if ! which ops | grep $HOME/.local/bin
then
echo "$HOME/.local/bin is not in the path - adding it"
echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.bashrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.zshrc
echo to find ops in the path, please either source your .bashrc or .zshrc or restart your terminal
else
echo installed ops v$(ops -version)
fi
tests:
desc: all tests
cmds:
- task: install
- task: utest
- task: itest
utest:
aliases: [ut]
desc: unit test (use F=-v to verbose)
cmds:
- rm -Rf ~/.ops
- go clean -testcache -cache
- go test -count=1 {{.F}} github.com/apache/openserverless-cli
- go test -count=1 {{.F}} github.com/apache/openserverless-cli/config
- go test -count=1 {{.F}} github.com/apache/openserverless-cli/tools
- go test github.com/apache/openserverless-cli/auth
bats:
dir: tests
cmds:
- git clone https://github.com/bats-core/bats-core bats
- git clone https://github.com/bats-core/bats-support test_helper/bats-support
- git clone https://github.com/bats-core/bats-assert test_helper/bats-assert
status:
- test -d bats
itest:
aliases: [it]
desc: integration tests for ops (T=<test-name> without .bats, empty run all, pass flags with F=)
dir: tests
cmds:
- task: bats
- rm -Rf ~/.ops/olaris
- |
if test -z "{{.T}}"
then bats/bin/bats {{.F}} .
else bats/bin/bats {{.F}} {{.T}}.bats
fi
clean:
- rm ops || true
- go clean -cache -modcache -testcache -fuzzcache
utestdiff:
cmds:
- |-
if test -z '{{.N}}'
then go test -v | tee _difftest
python3 difftest.py
else python3 difftest.py {{.N}}
fi