on: push

jobs:
  test1:
    runs-on: ubuntu-latest
    steps:
      # 'run' is first
      - run: echo hello
        uses: actions/checkout@v4
      # 'uses' is first
      - uses: actions/checkout@v4
        run: echo hello
      # 'shell' is specified so it must be 'run'
      - shell: bash
        uses: actions/checkout@v4
      # Empty
      - null
  test2:
    runs-on: ubuntu-latest
    # Empty steps
    steps:
  test3:
    runs-on: ubuntu-latest
    steps:
      - foo: aaa
        bar: bbb
      -
      - { }
      - shell: bash
        working-directory: /foo/bar
        with:
          foo: aaa
          bar: bbb
      - uses: actions/checkout@v5
        with: foo
      - uses: actions/checkout@v5
        shell: bash
      - uses: actions/checkout@v5
        working-directory: bash
      - run: echo hello
        with:
          foo: foo
          bar: bar
      - uses: actions/checkout@v5
        foooo: unknown key
      - run: echo hello
        foooo: unknown key
