mirror of
https://github.com/dokku/dokku.git
synced 2025-12-28 16:06:40 +01:00
167 lines
4.6 KiB
YAML
167 lines
4.6 KiB
YAML
version: 2.1
|
|
|
|
commands:
|
|
init-tests:
|
|
description: "Setup dokku for testing"
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: /home/circleci/project
|
|
- run:
|
|
name: restore docker images
|
|
command: |
|
|
time docker load -i build/herokuish.tar
|
|
time docker load -i build/node.tar
|
|
- run:
|
|
name: resolve dokku.me
|
|
command: |
|
|
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to ens4
|
|
# this is maybe eth0 on github
|
|
ifconfig
|
|
sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev ens4
|
|
- run:
|
|
name: install ci-dependencies
|
|
command: make ci-dependencies
|
|
- run:
|
|
name: setup tests
|
|
command: ./tests/ci/setup.sh
|
|
- run:
|
|
name: dokku cleanup:skip
|
|
command: echo 'export DOKKU_SKIP_CLEANUP=true' | sudo tee /home/dokku/.dokkurc/dokku_skip_cleanup
|
|
- run:
|
|
name: dokku report
|
|
command: dokku report
|
|
|
|
executors:
|
|
default:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: /home/circleci/project
|
|
|
|
jobs:
|
|
build:
|
|
executor: default
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: build package
|
|
command: ./tests/ci/setup.sh build
|
|
- run:
|
|
name: save docker images
|
|
command: |
|
|
HEROKUISH_VERSION=$(grep HEROKUISH_VERSION deb.mk | head -n1 | cut -d' ' -f3)
|
|
docker pull gliderlabs/herokuish:v$HEROKUISH_VERSION
|
|
docker save -o build/herokuish.tar gliderlabs/herokuish:v$HEROKUISH_VERSION
|
|
docker pull node:4-alpine
|
|
docker save -o build/node.tar node:4-alpine
|
|
- persist_to_workspace:
|
|
root: /home/circleci/project
|
|
paths:
|
|
- build
|
|
docker-deploy-tests:
|
|
executor: default
|
|
steps:
|
|
- init-tests
|
|
- run:
|
|
name: test docker deploys
|
|
shell: /bin/bash
|
|
no_output_timeout: 20
|
|
command: |
|
|
./tests/ci/setup.sh docker
|
|
DOKKU_SSH_PORT=3022 sudo -E make -e test-ci-docker
|
|
go-tests:
|
|
executor: default
|
|
parameters:
|
|
index:
|
|
type: integer
|
|
steps:
|
|
- init-tests
|
|
- run:
|
|
name: run pre-tests
|
|
command: |
|
|
case << parameters.index >> in
|
|
0) sudo -E make -e lint-ci go-tests ci-go-coverage ;;
|
|
1) sudo -E make -e deploy-test-checks-root deploy-test-config ;;
|
|
2) sudo -E make -e deploy-test-multi ;;
|
|
3) sudo -E make -e deploy-test-go-fail-predeploy deploy-test-go-fail-postdeploy ;;
|
|
esac
|
|
- store_artifacts:
|
|
path: ./coverage.out
|
|
test:
|
|
executor: default
|
|
parameters:
|
|
index:
|
|
type: string
|
|
steps:
|
|
- init-tests
|
|
- run:
|
|
shell: /bin/bash
|
|
command: |
|
|
mkdir -p test-results/bats
|
|
cd tests/unit
|
|
echo "executing tests: $(ls << parameters.index >>*.bats | xargs)"
|
|
sudo -E bats --formatter bats-format-junit -e -T -o ../../test-results/bats $(ls << parameters.index >>*.bats | xargs)
|
|
no_output_timeout: 60m
|
|
- store_artifacts:
|
|
path: ./test-results
|
|
destination: test-results
|
|
- store_test_results:
|
|
path: test-results
|
|
|
|
workflows:
|
|
workflow:
|
|
jobs:
|
|
- build
|
|
- docker-deploy-tests:
|
|
requires:
|
|
- build
|
|
- test
|
|
- go-tests:
|
|
matrix:
|
|
parameters:
|
|
index: [0, 1, 2, 3]
|
|
requires:
|
|
- build
|
|
- test
|
|
- test:
|
|
matrix:
|
|
parameters:
|
|
index:
|
|
- app-json
|
|
- apps
|
|
- build-env
|
|
- buildpacks
|
|
- certs
|
|
- checks
|
|
- client
|
|
- config-oddities
|
|
- config
|
|
- core_1
|
|
- core_2
|
|
- docker-options
|
|
- domains
|
|
- events
|
|
- git
|
|
- init
|
|
- network
|
|
- nginx-vhosts_1
|
|
- nginx-vhosts_2
|
|
- nginx-vhosts_3
|
|
- plugin
|
|
- proxy
|
|
- ps-dockerfile
|
|
- ps-general
|
|
- ps-herokuish
|
|
- repo
|
|
- report
|
|
- resource
|
|
- scheduler-docker-local
|
|
- ssh_keys
|
|
- storage
|
|
- tags
|
|
- tar
|
|
- trace
|
|
- version
|
|
requires:
|
|
- build
|