add basic tekton zcash env
This commit is contained in:
parent
f84a57e71b
commit
e6de9bd437
|
@ -0,0 +1,77 @@
|
|||
# infra-tekton-labs
|
||||
Examples of CI/CD used to support Zcash build and testing
|
||||
|
||||
# Environment Tooling Setup
|
||||
### Install Docker
|
||||
https://docs.docker.com/engine/install/
|
||||
|
||||
#### Setup Docker
|
||||
If you are installing Docker for the first time, to run `docker` without `sudo` priviledge for every docker command:
|
||||
|
||||
- Check if Docker group already exists:
|
||||
- `cat /etc/group | grep docker`
|
||||
- How to create docker group:
|
||||
- `sudo groupadd docker`
|
||||
- Add current user to docker group
|
||||
- `sudo usermod -a -G docker $CURR_USER`
|
||||
- Validate current user was added:
|
||||
- `cat /etc/group | grep docker`
|
||||
- Restart system to persist changes and graceful setup (had issues with just logout/login)
|
||||
|
||||
### Install Kind
|
||||
https://kind.sigs.k8s.io/
|
||||
|
||||
### Install Kubctl
|
||||
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
|
||||
|
||||
### Install Tkn
|
||||
https://tekton.dev/docs/cli/
|
||||
|
||||
# Setup Local Zcash CI environment
|
||||
|
||||
### Create cluster (e.g. micro k8, kind, minicube)
|
||||
1. `kind create cluster --name zcash-tekton-lab`
|
||||
|
||||
Other Useful commands
|
||||
- Validate cluster creation & context: `kubectl cluster-info --context kind-zcash-tekton-lab`
|
||||
|
||||
- Delete cluster: `kind delete cluster --name zcash-tekton-lab || true`
|
||||
|
||||
- List Kube contexts: `kubectl config get-contexts`
|
||||
|
||||
- Delete Kube contexts: `kubectl config delete-context <context_name>`
|
||||
|
||||
- Setup Kube context: `kubectl config current-context`
|
||||
|
||||
- Create new Kube context: `kubectl config set-context zcash_local_ci --user=cluster-admin`
|
||||
|
||||
- Switch to new context: `kubectl config use-context zcash_local_ci`
|
||||
|
||||
### Create Tekton Pipeline in cluster
|
||||
See: https://github.com/tektoncd/pipeline for recent version
|
||||
2. `kubectl apply -f releases/tekton-pipeline-v0.37.0.yaml`
|
||||
|
||||
(Alternative)
|
||||
`kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.37.0/release.yaml`
|
||||
|
||||
### Create Tekton Dashboard in cluster
|
||||
See: https://github.com/tektoncd/dashboard for recent version
|
||||
3. `kubectl apply -f releases/tekton-dashboard-readonly-v0.27.0.yaml`
|
||||
|
||||
Validate deployment of Tekton Dashboard & Pipeline
|
||||
`kubectl get pods --namespace tekton-pipelines`
|
||||
|
||||
Forward Tekton Dashboard:
|
||||
`kubectl --namespace tekton-pipelines port-forward svc/tekton-dashboard 9097:9097 &`
|
||||
|
||||
View Dashboard in Browser:
|
||||
`http://localhost:9097/`
|
||||
|
||||
## Create Tekton Task
|
||||
kubectl apply -f ./tasks/zcash-build.yml
|
||||
|
||||
tkn task start --showlog zcash-build
|
||||
|
||||
tkn task delete zcash-build
|
||||
|
||||
## Create Tekton Pipeline
|
|
@ -0,0 +1,334 @@
|
|||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: extensions.dashboard.tekton.dev
|
||||
spec:
|
||||
group: dashboard.tekton.dev
|
||||
names:
|
||||
categories:
|
||||
- tekton
|
||||
- tekton-dashboard
|
||||
kind: Extension
|
||||
plural: extensions
|
||||
shortNames:
|
||||
- ext
|
||||
- exts
|
||||
preserveUnknownFields: false
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .spec.apiVersion
|
||||
name: API version
|
||||
type: string
|
||||
- jsonPath: .spec.name
|
||||
name: Kind
|
||||
type: string
|
||||
- jsonPath: .spec.displayname
|
||||
name: Display name
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: tekton-dashboard
|
||||
namespace: tekton-pipelines
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: tekton-dashboard-info
|
||||
namespace: tekton-pipelines
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resourceNames:
|
||||
- dashboard-info
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: tekton-dashboard-backend
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- security.openshift.io
|
||||
resources:
|
||||
- securitycontextconstraints
|
||||
verbs:
|
||||
- use
|
||||
- apiGroups:
|
||||
- tekton.dev
|
||||
resources:
|
||||
- clustertasks
|
||||
- clustertasks/status
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- triggers.tekton.dev
|
||||
resources:
|
||||
- clusterinterceptors
|
||||
- clustertriggerbindings
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: tekton-dashboard-tenant
|
||||
rules:
|
||||
- apiGroups:
|
||||
- dashboard.tekton.dev
|
||||
resources:
|
||||
- extensions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
- namespaces
|
||||
- pods
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- tekton.dev
|
||||
resources:
|
||||
- tasks
|
||||
- taskruns
|
||||
- pipelines
|
||||
- pipelineruns
|
||||
- pipelineresources
|
||||
- conditions
|
||||
- tasks/status
|
||||
- taskruns/status
|
||||
- pipelines/status
|
||||
- pipelineruns/status
|
||||
- taskruns/finalizers
|
||||
- pipelineruns/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- triggers.tekton.dev
|
||||
resources:
|
||||
- eventlisteners
|
||||
- triggerbindings
|
||||
- triggers
|
||||
- triggertemplates
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: tekton-dashboard-info
|
||||
namespace: tekton-pipelines
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: tekton-dashboard-info
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: Group
|
||||
name: system:authenticated
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
rbac.dashboard.tekton.dev/subject: tekton-dashboard
|
||||
name: tekton-dashboard-backend
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: tekton-dashboard-backend
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: tekton-dashboard
|
||||
namespace: tekton-pipelines
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
version: v0.27.0
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
name: dashboard-info
|
||||
namespace: tekton-pipelines
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: tekton-dashboard
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/name: dashboard
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
app.kubernetes.io/version: v0.27.0
|
||||
dashboard.tekton.dev/release: v0.27.0
|
||||
version: v0.27.0
|
||||
name: tekton-dashboard
|
||||
namespace: tekton-pipelines
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 9097
|
||||
protocol: TCP
|
||||
targetPort: 9097
|
||||
selector:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/name: dashboard
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: tekton-dashboard
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/name: dashboard
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
app.kubernetes.io/version: v0.27.0
|
||||
dashboard.tekton.dev/release: v0.27.0
|
||||
version: v0.27.0
|
||||
name: tekton-dashboard
|
||||
namespace: tekton-pipelines
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/name: dashboard
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: tekton-dashboard
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/name: dashboard
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
app.kubernetes.io/version: v0.27.0
|
||||
name: tekton-dashboard
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --port=9097
|
||||
- --logout-url=
|
||||
- --pipelines-namespace=tekton-pipelines
|
||||
- --triggers-namespace=tekton-pipelines
|
||||
- --read-only=true
|
||||
- --log-level=info
|
||||
- --log-format=json
|
||||
- --namespace=
|
||||
- --stream-logs=true
|
||||
- --external-logs=
|
||||
env:
|
||||
- name: INSTALLED_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.27.0@sha256:d57860eb2ff1f97ca1b657eda6ec640584ec8b756e80a5f888c98b7b056c14c1
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 9097
|
||||
name: tekton-dashboard
|
||||
ports:
|
||||
- containerPort: 9097
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readiness
|
||||
port: 9097
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65532
|
||||
serviceAccountName: tekton-dashboard
|
||||
volumes: []
|
||||
|
||||
---
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: dashboard
|
||||
app.kubernetes.io/instance: default
|
||||
app.kubernetes.io/part-of: tekton-dashboard
|
||||
rbac.dashboard.tekton.dev/subject: tekton-dashboard
|
||||
name: tekton-dashboard-tenant
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: tekton-dashboard-tenant
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: tekton-dashboard
|
||||
namespace: tekton-pipelines
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,205 @@
|
|||
---
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: Task
|
||||
metadata:
|
||||
name: zcash-build-bench
|
||||
spec:
|
||||
params:
|
||||
- name: JOBS
|
||||
default: "4"
|
||||
type: string
|
||||
- name: BUILD_FOR_HOST
|
||||
default: x86_64-pc-linux-gnu
|
||||
type: string
|
||||
- name: CONFIGURE_FLAGS
|
||||
default: ""
|
||||
type: string
|
||||
- name: BUILD_CONTAINER
|
||||
default: electriccoinco/zcashd-bench-debian10
|
||||
type: string
|
||||
- name: TEST_TARGET
|
||||
default: ""
|
||||
type: string
|
||||
resources:
|
||||
inputs:
|
||||
- name: source
|
||||
type: git
|
||||
steps:
|
||||
- name: build
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cd workspace/source
|
||||
echo $(git rev-parse HEAD)
|
||||
echo $(git rev-parse --short HEAD)
|
||||
|
||||
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin11" ]
|
||||
then
|
||||
mkdir -p depends/SDKs
|
||||
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
|
||||
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
|
||||
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
|
||||
-C depends/SDKs
|
||||
fi
|
||||
|
||||
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)
|
||||
|
||||
- name: bench-sleep
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
python -m pip install pyblake2 pyflakes python-qpid-proton pyutil pyzmq requests simplejson
|
||||
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time sleep | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-createsaplingspend
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time createsaplingspend | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-verifysaplingspend
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time verifysaplingspend | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-createsaplingoutput
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time createsaplingoutput | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-verifysaplingoutput
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time verifysaplingoutput | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-createjoinsplit
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time createjoinsplit | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-verifyjoinsplit
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time verifyjoinsplit | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-verifyequihash
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time verifyequihash | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-connectblockslow
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time connectblockslow | sed -n '2,$p' | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-loadwallet-200k-recv
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time loadwallet 200k-recv | sed 1d | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-loadwallet-200k-send
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time loadwallet 200k-send | sed 1d | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-listunspent-200k-recv
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time listunspent 200k-recv | sed 1d | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
||||
- name: bench-listunspent-200k-send
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
cp -r /home/benchmark-200k-UTXOs.tar.xz /workspace/source
|
||||
cp -r /home/block-107134.tar.xz /workspace/source
|
||||
cd /workspace/source
|
||||
|
||||
./qa/zcash/performance-measurements.sh time listunspent 200k-send | sed 1d | jq '[.[]|.runningtime | tonumber] | add / (. | length | tonumber)'
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: Task
|
||||
metadata:
|
||||
name: zcash-build-test
|
||||
spec:
|
||||
params:
|
||||
- name: JOBS
|
||||
default: "4"
|
||||
type: string
|
||||
- name: BUILD_FOR_HOST
|
||||
default: x86_64-pc-linux-gnu
|
||||
type: string
|
||||
- name: CONFIGURE_FLAGS
|
||||
default: ""
|
||||
type: string
|
||||
- name: BUILD_CONTAINER
|
||||
default: electriccoinco/zcashd-worker-ubuntu2004v2
|
||||
type: string
|
||||
- name: TEST_TARGET
|
||||
default: ""
|
||||
type: string
|
||||
resources:
|
||||
inputs:
|
||||
- name: source
|
||||
type: git
|
||||
steps:
|
||||
- name: build
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cd workspace/source
|
||||
echo $(git rev-parse HEAD)
|
||||
echo $(git rev-parse --short HEAD)
|
||||
|
||||
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin11" ]
|
||||
then
|
||||
mkdir -p depends/SDKs
|
||||
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
|
||||
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
|
||||
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
|
||||
-C depends/SDKs
|
||||
fi
|
||||
|
||||
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)
|
||||
|
||||
- name: test
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
python -m pip install pyblake2 pyflakes python-qpid-proton pyutil pyzmq requests simplejson
|
||||
cp -a /home/.zcash-params $HOME/
|
||||
echo $(git rev-parse HEAD)
|
||||
echo $(git rev-parse --short HEAD)
|
||||
HOST=x86_64-pc-linux-gnu /workspace/source/qa/zcash/full_test_suite.py $(params.TEST_TARGET)
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: Task
|
||||
metadata:
|
||||
name: zcash-build
|
||||
spec:
|
||||
params:
|
||||
- name: JOBS
|
||||
default: "4"
|
||||
type: string
|
||||
- name: BUILD_FOR_HOST
|
||||
default: x86_64-pc-linux-gnu
|
||||
type: string
|
||||
- name: CONFIGURE_FLAGS
|
||||
default: ""
|
||||
type: string
|
||||
- name: BUILD_CONTAINER
|
||||
default: electriccoinco/zcashd-worker-ubuntu2004v2
|
||||
type: string
|
||||
resources:
|
||||
inputs:
|
||||
- name: source
|
||||
type: git
|
||||
steps:
|
||||
- name: setup-venv
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -e -o pipefail
|
||||
python3 -m venv /venv/zcash-build-venv
|
||||
source /venv/zcash-build-venv/bin/activate
|
||||
python -m pip install pyblake2 pyflakes python-qpid-proton pyutil pyzmq requests simplejson
|
||||
|
||||
- name: build
|
||||
image: $(params.BUILD_CONTAINER)
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -o pipefail
|
||||
cd workspace/source
|
||||
echo $(git rev-parse HEAD)
|
||||
echo $(git rev-parse --short HEAD)
|
||||
if [ "$(params.BUILD_FOR_HOST)" == "x86_64-apple-darwin11" ]
|
||||
then
|
||||
mkdir -p depends/SDKs
|
||||
curl -fs https://ecc.mypinata.cloud/ipfs/QmeSwckvSCGL9SXGdEHoAyqXdzD7T9HYTwsC34Bj5EVDF5 \
|
||||
-o depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
|
||||
tar zxvf depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz \
|
||||
-C depends/SDKs
|
||||
fi
|
||||
|
||||
CONFIGURE_FLAGS=$(params.CONFIGURE_FLAGS) HOST=$(params.BUILD_FOR_HOST) ./zcutil/build.sh -j$(params.JOBS)
|
Loading…
Reference in New Issue