name: CI

on: [push,pull_request]

jobs:
  build_TS80:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: chmod
        run: chmod +x setup.sh && chmod +x workspace/TS100/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
      
      - name: Cached compiler source files
        uses: actions/cache@v2
        env:
          cache-name: cache-compilers
        with:
          # we deliberately persist a cache folder forwards
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build TS80
        run: cd workspace/TS100 && ./build.sh -m TS80

      - name: Archive TS80 artifacts
        uses: actions/upload-artifact@v2
        with:
          name: TS80
          path: |
            workspace/TS100/Hexfile/TS80_*.hex
            workspace/TS100/Hexfile/TS80_*.bin
          if-no-files-found: error
  build_TS80P:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: chmod
        run: chmod +x setup.sh && chmod +x workspace/TS100/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build

      - name: Cached compiler source files
        uses: actions/cache@v2
        env:
          cache-name: cache-compilers
        with:
          # we deliberately persist a cache folder forwards
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build TS80P
        run: cd workspace/TS100 && ./build.sh -m TS80P

      - name: Archive TS80P artifacts
        uses: actions/upload-artifact@v2
        with:
          name: TS80P
          path: |
            workspace/TS100/Hexfile/TS80P_*.hex
            workspace/TS100/Hexfile/TS80P_*.bin
          if-no-files-found: error
  build_TS100:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: chmod
        run: chmod +x setup.sh && chmod +x workspace/TS100/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
        
      - name: Cached compiler source files
        uses: actions/cache@v2
        env:
          cache-name: cache-compilers
        with:
          # we deliberately persist a cache folder forwards
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build TS100
        run: cd workspace/TS100 && ./build.sh -m TS100

      - name: Archive TS100 artifacts
        uses: actions/upload-artifact@v2
        with:
          name: TS100
          path: |
            workspace/TS100/Hexfile/TS100_*.hex
            workspace/TS100/Hexfile/TS100_*.bin
          if-no-files-found: error

  build_Pinecil:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: chmod
        run: chmod +x setup.sh && chmod +x workspace/TS100/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
        
      - name: Cached compiler source files
        uses: actions/cache@v2
        env:
          cache-name: cache-compilers
        with:
          # we deliberately persist a cache folder forwards
          path: /build/cache
          key: ${{ runner.os }}-build-${{ env.cache-name }}
          restore-keys: |
            ${{ runner.os }}-

      - name: setup
        run: ./setup.sh

      - name: build Pinecil
        run: cd workspace/TS100 && ./build.sh -m Pinecil

      - name: Archive Pinecil artifacts
        uses: actions/upload-artifact@v2
        with:
          name: Pinecil
          path: |
            workspace/TS100/Hexfile/Pinecil_*.hex
            workspace/TS100/Hexfile/Pinecil_*.bin
          if-no-files-found: error
