Run tests #342
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: Run tests | |
on: | |
workflow_dispatch: | |
push: | |
schedule: | |
- cron: "0 2 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }} | |
cancel-in-progress: true | |
jobs: | |
job1: | |
name: "Prepare Tests" | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: set-matrix | |
run: | | |
echo "matrix={\"node\":[$(python getter.py)]}" >> $GITHUB_OUTPUT | |
- name: "Set Up Julia" | |
uses: julia-actions/setup-julia@v2 | |
with: | |
version: "1.10" | |
- uses: julia-actions/cache@v2 | |
with: | |
cache-name: julia-cache;workflow=${{ github.workflow }};ref=${{ github.run_id }} | |
include-matrix: false | |
- name: "Install julia pre-requisites" | |
run: | | |
julia -e ' | |
using Pkg | |
Pkg.add("Oscar") | |
Pkg.add("BenchmarkTools") | |
Pkg.add("GraphRecipes") | |
Pkg.add("Graphs") | |
Pkg.add("Interact") | |
Pkg.add("Plots")' | |
job2: | |
needs: | |
- job1 | |
name: "Run tests" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJSON(needs.job1.outputs.matrix)}} | |
timeout-minutes: 60 | |
steps: | |
- name: "Set Up Julia" | |
uses: julia-actions/setup-julia@v2 | |
with: | |
version: "1.10" | |
- uses: julia-actions/cache@v2 | |
with: | |
cache-name: julia-cache;workflow=${{ github.workflow }};ref=${{ github.run_id }} | |
include-matrix: false | |
- uses: actions/checkout@v4 | |
- name: "Install Jupyter" | |
run: | | |
if (( $(echo "$(pip --version | awk '{print $2}' | cut -d'.' -f 1,2) >= 23.1" |bc -l) )); then | |
FLAG='--break-system-packages' | |
else | |
FLAG='' | |
fi | |
pip3 install $FLAG notebook jupytext | |
- name: "Install julia pre-requisites" | |
run: | | |
julia -e ' | |
using Pkg | |
Pkg.add("Oscar") | |
Pkg.add("BenchmarkTools") | |
Pkg.add("GraphRecipes") | |
Pkg.add("Graphs") | |
Pkg.add("Interact") | |
Pkg.add("IJulia") | |
Pkg.add("Plots")' | |
- run: mkdir -pv notebooks | |
- name: Use default julia environment | |
run: | | |
cat ~/.local/share/jupyter/kernels/julia-1.10/kernel.json | sed 's/^.*project=.*$//' > ~/.local/share/jupyter/kernels/julia-1.10/kernel.json.new | |
mv -v ~/.local/share/jupyter/kernels/julia-1.10/kernel.json.new ~/.local/share/jupyter/kernels/julia-1.10/kernel.json | |
- run: python3 tester.py ${{ matrix.node }} | |
- name: Upload new notebook | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.node }} | |
path: notebooks/*.ipynb | |
retention-days: 7 | |
- name: Notify Slack Action | |
if: always() | |
uses: ravsamhq/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
message_format: "{emoji} *${{matrix.node}}* {status_message} in <{run_url}>" | |
notify_when: "failure,cancelled,skipped" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.ACTION_MONITORING_SLACK }} |