.cargo_test_template: &cargo_test
  stage: test
  script:
    - cargo test --verbose --jobs 1

stages:
  - test
  - deploy

stable:cargo:
  image: rustdocker/rust:stable
  <<: *cargo_test

stable:
  image: rustdocker/rust:stable
  stage: test
  script:
    - cargo test --verbose --jobs 1 --release

beta:
  image: rustdocker/rust:beta
  stage: test
  script:
    - cargo test --verbose --jobs 1 --release

nightly:
  image: rustdocker/rust:nightly
  stage: test
  script:
    - cargo test --verbose --jobs 1 --release

pages:
  image: rustdocker/rust:stable
  stage: deploy
  only:
    - master
  script:
    - cargo doc
    - rm -rf public
    - mkdir public
    - cp -R target/doc/* public
  artifacts:
    paths:
    - public

.cargo_test_template: &cargo_test
  stage: test
  script:
    - cargo test --verbose --jobs 1

stages:
  - test
  - deploy

stable:cargo:
  image: rustdocker/rust:stable
  <<: *cargo_test

beta:cargo:
  image: rustdocker/rust:beta
  <<: *cargo_test

nightly:cargo:
  image: rustdocker/rust:nightly
  <<: *cargo_test

pages:
  image: rustdocker/rust:stable
  stage: deploy
  only:
    - master
  script:
    - cargo doc
    - rm -rf public
    - mkdir public
    - cp -R target/doc/* public
  artifacts:
    paths:
    - public

Move all jobs to cargo test template
Move all jobs to cargo test template
