name: prototyping on: pull_request: paths: - '.github/workflows/prototyping.yml' - 'prototyping/**' jobs: linux: strategy: matrix: agda: [2.6.2.2] hackageDate: ["2022-04-07"] hackageTime: ["23:06:28"] name: prototyping runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions/cache@v2 with: path: ~/.cabal/store key: "prototyping-${{ runner.os }}-${{ matrix.agda }}-${{ matrix.hackageDate }}-${{ matrix.hackageTime }}" - uses: actions/cache@v2 id: luau-ast-cache with: path: ./build key: prototyping-${{ runner.os }}-${{ hashFiles('Ast/**', 'Analysis/**', 'CLI/Ast.cpp', 'CLI/FileUtils.*')}} - name: install cabal run: sudo apt-get install -y cabal-install - name: cabal update working-directory: prototyping run: cabal v2-update "hackage.haskell.org,${{ matrix.hackageDate }}T${{ matrix.hackageTime }}Z" - name: cabal install working-directory: prototyping run: | cabal install --lib scientific vector aeson --package-env . cabal install --allow-newer Agda-${{ matrix.agda }} - name: check targets working-directory: prototyping run: | ~/.cabal/bin/agda Everything.agda - name: build executables working-directory: prototyping run: | ~/.cabal/bin/agda --compile PrettyPrinter.agda ~/.cabal/bin/agda --compile Interpreter.agda - name: cmake configure if: steps.luau-ast-cache.outputs.cache-hit != 'true' run: | mkdir -p build cd build cmake build ../ - name: cmake build luau-ast if: steps.luau-ast-cache.outputs.cache-hit != 'true' run: | cmake --build ./build --target Luau.Ast.CLI - name: run tests working-directory: prototyping run: | mkdir test-failures python tests.py -l ../build/luau-ast --write-diff-failures --diff-failure-location test-failures/ - uses: actions/upload-artifact@v2 if: failure() with: name: test failures path: prototyping/test-failures retention-days: 5