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