name: Samples Julia

on:
  push:
    paths:
      - 'samples/client/petstore/julia/**'
      - 'samples/server/petstore/julia/**'
  pull_request:
    paths:
      - 'samples/client/petstore/julia/**'
      - 'samples/server/petstore/julia/**'

jobs:
  tests-julia:
    name: Tests Julia
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: julia-actions/setup-julia@v1
        with:
          version: 1
          arch: x64
      - name: Test
        shell: bash
        working-directory: 'samples'
        run: |
          currdir=`pwd`
          # Using a specific version of OpenAPI.jl helps avoid introducing version inter-dependencies
          #   and allows breaking changes to be done in either repos independently
          # Using develop mode to install package so that it is easier to modify the package test files
          julia -e "using Pkg; Pkg.develop(\"OpenAPI\");"
          cd ~/.julia/dev/OpenAPI
          git checkout v0.1.12
          cd $currdir
          rm -rf ~/.julia/dev/OpenAPI/test/client/petstore_v3/petstore
          rm -rf ~/.julia/dev/OpenAPI/test/server/petstore_v3/petstore
          cp -r client/petstore/julia ~/.julia/dev/OpenAPI/test/client/petstore_v3/petstore
          cp -r server/petstore/julia ~/.julia/dev/OpenAPI/test/server/petstore_v3/petstore
          # setting this env runs only the tests relevant to the openapi-generator repo
          export OPENAPI_GENERATOR=true
          julia -e "using Pkg; Pkg.test(\"OpenAPI\");"
