diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6b961fc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +name: CI +on: + push: + branches: [main] + tags: ["*"] + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ (github.ref != 'refs/heads/main') || github.run_number }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +permissions: + actions: write + contents: read + +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: ['lts', '1'] + os: [ubuntu-latest, macOS-latest, windows-latest] + steps: + - uses: actions/checkout@v6 + - uses: julia-actions/setup-julia@v3 + with: + version: ${{ matrix.version }} + - uses: julia-actions/cache@v3 + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v6 + with: + files: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/Project.toml b/Project.toml index 8c52a3a..474ceb7 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StochasticAD = "e4facb34-4f7e-4bec-b153-e122c37934ac" [compat] +julia = "1.10" Distributions = "0.25.113" Graphs = "1.9.0" StochasticAD = "0.1.26" diff --git a/README.md b/README.md index f5d7479..9901d41 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # QuantumNetworkRecipes +[![CI](https://github.com/GuusAvis/QuantumNetworkRecipes.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/GuusAvis/QuantumNetworkRecipes.jl/actions/workflows/ci.yml) +[![Coverage](https://codecov.io/gh/GuusAvis/QuantumNetworkRecipes.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/GuusAvis/QuantumNetworkRecipes.jl) + QuantumNetworkRecipes can be used to specify the characteristics of a quantum network in the form of a "recipe". Each recipe needs to be self contained and must fully specify both the physical characteristics of the network and any protocols executed in the network, leaving no room for ambiguity. Recipes then provide a common language for computer programs to analyze and share information about quantum networks.