on: [push]
jobs:
  upload-many:
    runs-on: docker
    steps:
    - run: mkdir -p artifacts

    - run: touch artifacts/ONE artifacts/TWO

    - uses: actions/upload-artifact@v3
      with:
        name: many-artifacts
        path: artifacts/

  download-many:
    needs: [upload-many]
    runs-on: docker
    steps:
    - uses: actions/download-artifact@v3

    - run: |
        test -f many-artifacts/ONE
        test -f many-artifacts/TWO

  upload-one:
    runs-on: docker
    steps:
    - run: mkdir -p path/to/artifact

    - run: echo hello > path/to/artifact/world.txt

    - uses: actions/upload-artifact@v3
      with:
        name: my-artifact
        path: path/to/artifact/world.txt

  download-one:
    needs: [upload-one]
    runs-on: docker
    steps:
    - run: "! test -f world.txt"

    - uses: actions/download-artifact@v3
      with:
        name: my-artifact

    - run: "test -f world.txt"