|
- desc "Initialize the data for dev ops languages"
- namespace :dev_ops_languages do
-
- task init: :environment do
- # DevOps::Language.bulk_insert do |worker|
- # languages.each do |attrs|
- # worker.add(attrs)
- # end
- # end
-
- languages.each do |l|
- content = Base64.encode64 l[:content]
- Ci::Language.create!(name: l[:name], content: content)
- end
- end
-
- def languages
- [
- {
- name: "C",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: gcc
- commands:
- - ./configure
- - make
- - make test"
- },
- {
- name: "C++",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: gcc
- commands:
- - ./configure
- - make
- - make test"
- },
- {
- name: "Docker",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: docker:dind
- volumes:
- - name: dockersock
- path: /var/run/docker.sock
- commands:
- - docker ps -a
-
- volumes:
- - name: dockersock
- host:
- path: /var/run/docker.sock"
- },
- {
- name: "Java",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: maven:3-jdk-10
- commands:
- - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
- - mvn test -B"
- },
- {
- name: "R",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: r-base
- commands:
- - R -e 'install.packages(c('package1','package2'))'
- - R CMD build ."
- },
- {
- name: "Ruby",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: ruby
- commands:
- - bundle install --jobs=3 --retry=3
- - rake"
- },
- {
- name: "PHP",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: install
- image: composer
- commands:
- - composer install
-
- - name: test
- image: php:7
- commands:
- - vendor/bin/phpunit --configuration config.xml"
- },
- {
- name: "Python",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: python
- commands:
- - pip install -r requirements.txt
- - pytest"
- },
- {
- name: "MySQL",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: mysql
- commands:
- - sleep 15
- - mysql -u root -h database --execute='SELECT VERSION();'
-
- services:
- - name: database
- image: mysql
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
- MYSQL_DATABASE: test"
- },
- {
- name: "MongoDB",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: ping
- image: mongo:4
- commands:
- - sleep 5
- - mongo --host mongo --eval 'db.version()'
-
- services:
- - name: mongo
- image: mongo:4
- command: [ --smallfiles ]"
- },
- {
- name: "Clojure",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: clojure
- commands:
- - lein test"
- },
- {
- name: "CouchDB",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: couchdb:2.2
- commands:
- - sleep 15
- - curl http://database:5984
-
- services:
- - name: database
- image: couchdb:2.2"
- },
- {
- name: "Crystal",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: crystallang/crystal
- commands:
- - shards install
- - crystal spec.2"
- },
- {
- name: "D",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: dlanguage/dmd
- commands:
- - dub test"
- },
- {
- name: "Dart",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: google/dart
- commands:
- - pub get
- - pub run test"
- },
- {
- name: "Docker (dind)",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: docker:dind
- volumes:
- - name: dockersock
- path: /var/run
- commands:
- - sleep 5 # give docker enough time to start
- - docker ps -a
-
- services:
- - name: docker
- image: docker:dind
- privileged: true
- volumes:
- - name: dockersock
- path: /var/run
-
- volumes:
- - name: dockersock
- temp: {}"
- },
- {
- name: "Elasticsearch",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: alpine:3.8
- commands:
- - apk add curl
- - sleep 45
- - curl http://database:9200
-
- services:
- - name: database
- image: elasticsearch:5-alpine"
- },
- {
- name: "Elixir",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: elixir:1.5
- commands:
- - mix local.rebar --force
- - mix local.hex --force
- - mix deps.get
- - mix test"
- },
- {
- name: "Erlang",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: erlang:21
- commands:
- - rebar get-deps
- - rebar compile
- - rebar skip_deps=true eunit"
- },
- {
- name: "20.Go (with Gopath)",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- workspace:
- base: /go
- path: src/hello-world
-
- steps:
- - name: test
- image: golang
- commands:
- - go get
- - go test"
- },
- {
- name: "21.Go (with Modules)",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: golang
- commands:
- - go test
- - go build"
- },
- {
- name: "Gradle",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: gradle:jdk10
- commands:
- - gradle assemble
- - gradle check"
- },
- {
- name: "Groovy",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: gradle:2.5-jdk8
- commands:
- - ./gradlew assemble
- - ./gradlew check"
- },
- {
- name: "Haskell",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: haskell
- commands:
- - cabal install --only-dependencies --enable-tests
- - cabal configure --enable-tests
- - cabal build
- - cabal test"
- },
- {
- name: "Haxe",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: haxe
- commands:
- - haxelib install build.hxml
- - haxe build.hxml"
- },
- {
- name: "MariaDB",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: mariadb
- commands:
- - sleep 15
- - mysql -u root -h database --execute='SELECT VERSION();'
-
- services:
- - name: database
- image: mariadb
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
- MYSQL_DATABASE: test"
- },
- {
- name: "Maven",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: maven:3-jdk-10
- commands:
- - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
- - mvn test -B"
- },
- {
- name: "Memcached",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: ubuntu
- commands:
- - apt-get update -qq
- - apt-get install -y -qq telnet > /dev/null
- - (sleep 1; echo 'stats'; sleep 2; echo 'quit';) | telnet cache 11211 || true
-
- services:
- - name: cache
- image: memcached:alpine
- command: [ -vv ]"
- },
- {
- name: "Nats",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: ruby:2
- commands:
- - gem install nats
- - nats-pub -s tcp://nats:4222 greeting 'hello'
- - nats-pub -s tcp://nats:4222 greeting 'world'
-
- services:
- - name: nats
- image: nats:1.3.0"
- },
- {
- name: "Node",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: node
- commands:
- - npm install
- - npm test"
- },
- {
- name: "Perl",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: perl
- commands:
- - cpanm --quiet --installdeps --notest .
- - perl Build.PL
- - ./Build test"
- },
- {
- name: "Postgres",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: postgres:9-alpine
- commands:
- - psql -U postgres -d test -h database
-
- services:
- - name: database
- image: postgres:9-alpine
- environment:
- POSTGRES_USER: postgres
- POSTGRES_DB: test"
- },
- {
- name: "Redis",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: redis
- commands:
- - sleep 5
- - redis-cli -h redis ping
- - redis-cli -h redis set FOO bar
- - redis-cli -h redis get FOO
-
- services:
- - name: redis
- image: redis"
- },
- {
- name: "RethinkDB",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: node:9
- commands:
- - npm install -s -g recli
- - recli -h database -j 'r.db('rethinkdb').table('stats')'
-
- services:
- - name: database
- image: rethinkdb:2
- command: [ rethinkdb, --bind, all ]"
- },
- {
- name: "Rust",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: rust:1.30
- commands:
- - cargo build --verbose --all
- - cargo test --verbose --all"
- },
- {
- name: "Swift",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: swift:4
- commands:
- - swift build
- - swift test"
- },
- {
- name: "Vault",
- content: "
- kind: pipeline
- name: default
-
- platform:
- os: linux
- arch: arm64
-
- steps:
- - name: test
- image: vault:1.0.0-beta2
- environment:
- VAULT_ADDR: http://vault:8200
- VAULT_TOKEN: dummy
- commands:
- - sleep 5
- - vault kv put secret/my-secret my-value=s3cr3t
- - vault kv get secret/my-secret
-
- services:
- - name: vault
- image: vault:1.0.0-beta2
- environment:
- VAULT_DEV_ROOT_TOKEN_ID: dummy"
- }
- ]
- end
- end
|