Can anyone see what is wrong with DRYing up this .yml?

in the top i declare

_jessie-step: &jessie-step
  name: Fix circleci issue with jessie-update binary list on 20180326
  command: |
            sudo chmod 646 /etc/apt/sources.list
            cat /dev/null > /etc/apt/sources.list
            echo "deb http://archive.debian.org/debian/ jessie main" | tee -a /etc/apt/sources.list
            sudo apt-get update

_deployment-steps: &deployment-steps 
   - run:
      <<: *jessie-step
   - run: sudo apt-get install -y python-dev
   - run: sudo curl -O https://bootstrap.pypa.io/get-pip.py
   - run: sudo python get-pip.py
   - run: sudo pip install awscli --upgrade
   - run: aws --version
   - run: aws s3 ls  

in usage i have something like

jobs:
  deployment:
    steps:
      <<: *deployment-steps

and have tried all variations of indentions on the line <<: *deployment-steps.

using https://yaml-online-parser.appspot.com/ and converting to .json , I can see that the extending by using alias results in:

{
          "run": {
            "command": "sudo chmod 646 /etc/apt/sources.list\ncat /dev/null > /etc/apt/sources.list\necho \"deb http://archive.debian.org/debian/ jessie main\" | tee -a /etc/apt/sources.list\nsudo apt-get update\n", 
            "name": "Fix circleci issue with jessie-update binary list on 20180326"
          }
}

which leaves me confused. E.G. it only outputs the alias in jessie-step and seem to ignore all the other runs

thanks in advance!