diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 00000000..3dacefdf --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,77 @@ +name: Unit tests + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./tests + + steps: + - uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - name: Unpack test files + run: | + tar xf elasticc2_alert_test_data.tar.bz2 + + - name: Build docker images + run: | + docker compose build + + - name: Bring docker environments up + run: | + docker compose up -d shell + + - name: Run Cycle Tests + run: | + docker compose exec -it shell /bin/bash -c "python3 -m pytest /tests/test_elasticc2_spectrumcycle.py" + + - name: Post to a Slack channel + if: ${{ failure() && github.event_name != 'workflow_dispatch' }} + id: slack + uses: slackapi/slack-github-action@v2 + with: + # #lf-resspect-ci channel in LSSTC slack workspace + method: chat.postMessage + token: ${{ secrets.SLACK_BOT_TOKEN }} + payload: | + { + "channel": "C080P31B1L4", + "text": "GitHub Action build result: *${{ job.status }}* :${{ job.status }}:", + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "${{ github.repository }}" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "GitHub Action build result: *${{ job.status }}* :${{ job.status }}:" + } + }, + { + "type": "divider" + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + } + } + ] + } + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} diff --git a/.gitignore b/.gitignore index b9cf019c..ddbadfd7 100644 --- a/.gitignore +++ b/.gitignore @@ -157,3 +157,8 @@ tom_desc/admin_tools/elasticc2_dump_10obj.sql tom_desc/admin_tools/elasticc2_dump_100obj.sql tom_desc/admin_tools/elasticc2_dump_1000obj.sql tom_desc/elasticc_subset.sql + +# Locations of runtime files for a docker compose dev setup +tom_desc/elasticc2/static/ +tom_desc/load_snana_fits_reconstruct_indexes_constraints.sql + diff --git a/tests/alertcyclefixtures.py b/tests/alertcyclefixtures.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tom_desc/fastdb_dev/DataTools.py b/tom_desc/fastdb_dev/DataTools.py index ab4d3c6a..67fb8725 100644 --- a/tom_desc/fastdb_dev/DataTools.py +++ b/tom_desc/fastdb_dev/DataTools.py @@ -26,7 +26,9 @@ from rest_framework.settings import api_settings _logger = logging.getLogger("fastdb_queries") -_logout = logging.FileHandler( pathlib.Path( os.getenv('LOGDIR', "/logs" )) / "fastdb_queries.log" ) +_log_path = pathlib.Path( os.environ.get('LOGDIR',""), "/logs" ) +_log_path.mkdir(parents=True, exist_ok=True) +_logout = logging.FileHandler( _log_path / "fastdb_queries.log" ) _logger.addHandler( _logout ) _formatter = logging.Formatter( f'[%(asctime)s - %(levelname)s] - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' )