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] DevOps::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