diff --git a/.github/workflows/compatibility-test copy.yaml b/.github/workflows/compatibility-test copy.yaml deleted file mode 100644 index 1c7cff8..0000000 --- a/.github/workflows/compatibility-test copy.yaml +++ /dev/null @@ -1,55 +0,0 @@ -name: Check compatibility of latest - -on: - schedule: - # * is a special character in YAML so you have to quote this string - - cron: '31 5,17 * * *' - workflow_dispatch: - -jobs: - Neurobagel-latest: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Rename files - working-directory: . - run: | - cp template.env .env - cp local_nb_nodes.template.json local_nb_nodes.json - - - name: Run docker compose - working-directory: . - run: | - docker compose --profile full_stack up -d - - - name: Set up node env - uses: actions/setup-node@v4 - with: - node-version: 20 - - - name: Install cypress - run: npm install - - - name: wait for graph set up - working-directory: ./scripts - run: | - while ! tail -n 0 -f ./logs/DEPLOY.log | grep -q "Finished setting up the Neurobagel graph backend."; do - : - done - echo "Finished setting up the Neurobagel graph backend." - - - name: Run end to end tests - uses: cypress-io/github-action@v6 - with: - wait-on: http://localhost:3000 - component: false - - - name: Latest broke, tell someone - if: ${{ failure() }} - run: | - curl -X POST -H 'Content-type: application/json' --data '{"text":"Neurobagel latest broke! Please check https://github.com/neurobagel/recipes/actions and resolve the incompatible versions!"}' ${{ secrets.NB_SLACK_WEBHOOK }} - - diff --git a/.github/workflows/compatibility-test.yaml b/.github/workflows/compatibility-test.yaml deleted file mode 100644 index e7c6acc..0000000 --- a/.github/workflows/compatibility-test.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: compatibility tests - -on: - workflow_dispatch: - -jobs: - Compatibility-test: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Rename files - working-directory: . - run: | - cp template.env .env - cp local_nb_nodes.template.json local_nb_nodes.json - sed -i 's/latest/nightly/g' .env - - - name: Run docker compose - working-directory: . - run: | - docker compose --profile full_stack up -d - - - name: Set up node env - uses: actions/setup-node@v4 - with: - node-version: 20 - - - name: Install cypress - run: npm install - - - name: wait for graph set up - working-directory: ./scripts - run: | - while ! tail -n 0 -f ./logs/DEPLOY.log | grep -q "Finished setting up the Neurobagel graph backend."; do - : - done - echo "Finished setting up the Neurobagel graph backend." - - - name: Run end to end tests - uses: cypress-io/github-action@v6 - with: - wait-on: http://localhost:3000 - component: false - - diff --git a/.github/workflows/compatibility.yaml b/.github/workflows/compatibility.yaml new file mode 100644 index 0000000..68a5c34 --- /dev/null +++ b/.github/workflows/compatibility.yaml @@ -0,0 +1,120 @@ +name: Compatibility of + +on: + workflow_dispatch: + schedule: + - cron: '21 5,17 * * *' + +jobs: + latest: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Rename files + working-directory: . + run: | + cp template.env .env + cp local_nb_nodes.template.json local_nb_nodes.json + + - name: Run docker compose + working-directory: . + run: | + docker compose --profile full_stack up -d + + - name: Set up node env + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install cypress + run: npm install + + - name: wait for graph set up + working-directory: ./scripts + run: | + # The logs are written at the end of the setup at the moment, so we have to wait for the file to exist + while [ ! -f ./logs/DEPLOY.log ]; do + : + done + # Once the file is there, we want to wait for the message that the setup is done + echo "We think the file exists now!" + while ! tail -n 0 -f ./logs/DEPLOY.log | grep -q "Finished setting up the Neurobagel graph backend."; do + : + done + echo "Finished setting up the Neurobagel graph backend." + + - name: Run end to end tests + uses: cypress-io/github-action@v6 + with: + wait-on: http://localhost:3000 + component: false + + - name: Latest failed, tell someone + if: ${{ failure() }} + run: | + curl -X POST -H 'Content-type: application/json' --data '{"text":"Neurobagel latest version compatibility test failed! Please check https://github.com/neurobagel/recipes/actions and resolve the incompatible versions!"}' ${{ secrets.NB_SLACK_WEBHOOK }} + + - name: Clean up again + working-directory: . + run: | + docker compose --profile full_stack down + + nightly: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Rename files + working-directory: . + run: | + cp template.env .env + cp local_nb_nodes.template.json local_nb_nodes.json + sed -i 's/latest/nightly/g' .env + + - name: Run docker compose + working-directory: . + run: | + docker compose --profile full_stack up -d + + - name: Set up node env + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install cypress + run: npm install + + - name: wait for graph set up + working-directory: ./scripts + run: | + # The logs are written at the end of the setup at the moment, so we have to wait for the file to exist + while [ ! -f ./logs/DEPLOY.log ]; do + : + done + # Once the file is there, we want to wait for the message that the setup is done + echo "We think the file exists now!" + while ! tail -n 0 -f ./logs/DEPLOY.log | grep -q "Finished setting up the Neurobagel graph backend."; do + : + done + echo "Finished setting up the Neurobagel graph backend." + + - name: Run end to end tests + uses: cypress-io/github-action@v6 + with: + wait-on: http://localhost:3000 + component: false + + - name: Nightly failed, tell someone + if: ${{ failure() }} + run: | + curl -X POST -H 'Content-type: application/json' --data '{"text":"Neurobagel nightly version compatibility test failed!"}' ${{ secrets.NB_SLACK_WEBHOOK }} + + - name: Clean up + working-directory: . + run: | + docker compose --profile full_stack down diff --git a/cypress/e2e/simple-test.js b/cypress/e2e/simple-test.cy.js similarity index 91% rename from cypress/e2e/simple-test.js rename to cypress/e2e/simple-test.cy.js index e7dab8e..8498cfb 100644 --- a/cypress/e2e/simple-test.js +++ b/cypress/e2e/simple-test.cy.js @@ -14,7 +14,7 @@ describe('Full stack e2e', () => { }); }); it("Federation API", () => { - cy.request("localhost:8000/query/?node=local graph 1").as("query"); + cy.request("localhost:8080/query/?node=http://api:8000/").as("query"); cy.get("@query").should((response) => { expect(response.status).to.eq(200); });