Tool version compatibility test #244
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tool version compatibility test | |
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: Edit NB_API_QUERY_URL env var | |
working-directory: . | |
run: | | |
sed -i 's|^NB_API_QUERY_URL=.*|NB_API_QUERY_URL=http://localhost:8080|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: 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: Edit NB_API_QUERY_URL env var | |
working-directory: . | |
run: | | |
sed -i 's|^NB_API_QUERY_URL=.*|NB_API_QUERY_URL=http://localhost:8080|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 |