Skip to content

ci: Upgrade support compiler from 2.09{2,3} to 2.10{5,9} #164

ci: Upgrade support compiler from 2.09{2,3} to 2.10{5,9}

ci: Upgrade support compiler from 2.09{2,3} to 2.10{5,9} #164

Workflow file for this run

# Github worflows for Ocean
name: CI
on: [push, pull_request]
jobs:
setup-ebtree:
uses: ./.github/workflows/ebtree.yml
with:
os: ubuntu-24.04
test:
strategy:
# Disable `fail-fast` because even if things fail for one compiler release
# or build flavour we still want to see how things perform with the others
fail-fast: false
matrix:
os: [ ubuntu-24.04 ]
dc: [ dmd-2.109.1, dmd-2.105.3 ]
flavor: [ prod, devel ]
include:
- { dc: dmd-2.109.1, coverage: 1, closure_check: 1 }
runs-on: ${{ matrix.os }}
timeout-minutes: 30
needs: setup-ebtree
steps:
# Checkout this repository and its submodules
- uses: actions/checkout@v4
with:
submodules: true
# Required for codecov (codecov/codecov-action#190)
fetch-depth: 2
- name: 'Restore ebtree from cache'
id: cache-ebtree
uses: actions/cache@v3
with:
path: ${{ github.workspace }}/tools/
key: ebtree-v6.0.socio10
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libbz2-dev libglib2.0-dev libpcre3-dev libreadline-dev libxslt-dev liblzo2-dev libgcrypt-dev libgpg-error-dev
sudo dpkg -i ${{ github.workspace }}/tools/ebtree/deb/libebtree6*.deb
- name: Install compiler
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.dc }}
- name: Test
run: |
make all test V=1 F=${{ matrix.flavor }} COV=${{ matrix.coverage }}
- name: Test closures
if: ${{ matrix.closure_check == 1 }}
env:
F: ${{ matrix.flavor }}
DFLAGS: -vgc
run: |
# Run tests and write compiler output to temporary file
compiler_output=`mktemp`
make fasttest 2>&1 > $compiler_output
# Ensure there are no lines about closure allocations in the output.
# Note explicit check for `grep` exit status 1, i.e. no lines found.
! grep -e "closure" $compiler_output
- name: 'Upload coverage'
if: ${{ matrix.coverage == 1 }}
uses: codecov/codecov-action@v3
with:
flags: ${{ matrix.dc }}-${{ matrix.flavor }}