To solution for race condition with adding resource version #513
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 integration tests | |
on: | |
pull_request: | |
types: [labeled, synchronize, reopened] | |
paths-ignore: | |
- 'docs/**' | |
jobs: | |
integration-tests: | |
runs-on: ubuntu-22.04 | |
if: contains(github.event.pull_request.labels.*.name, 'integration-tests') | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Setup MicroCeph | |
run: | | |
set -x | |
sudo snap install microceph --channel=quincy/stable | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends -y ceph-common | |
sudo microceph cluster bootstrap | |
sudo microceph.ceph config set global osd_pool_default_size 1 | |
sudo microceph.ceph config set global mon_allow_pool_delete true | |
sudo microceph.ceph config set global osd_memory_target 939524096 | |
sudo microceph.ceph osd crush rule rm replicated_rule | |
sudo microceph.ceph osd crush rule create-replicated replicated default osd | |
for flag in nosnaptrim noscrub nobackfill norebalance norecover noscrub nodeep-scrub; do | |
sudo microceph.ceph osd set $flag | |
done | |
# Repurpose the ephemeral disk for ceph OSD. | |
sudo swapoff /mnt/swapfile | |
ephemeral_disk="$(findmnt --noheadings --output SOURCE --target /mnt | sed 's/[0-9]\+$//')" | |
sudo microceph disk add --wipe "${ephemeral_disk}" | |
sudo rm -rf /etc/ceph | |
sudo ln -s /var/snap/microceph/current/conf/ /etc/ceph | |
sudo microceph enable rgw | |
sudo ceph osd pool create devpool 8 | |
sleep 30 | |
sudo microceph.ceph status | |
# Wait until there are no more "unkowns" pgs | |
for _ in $(seq 60); do | |
if sudo microceph.ceph pg stat | grep -wF unknown; then | |
sleep 1 | |
else | |
break | |
fi | |
done | |
sudo microceph.ceph status | |
sudo rm -f /snap/bin/rbd | |
- name: Set Environment Variables | |
run: | | |
echo "CEPH_USERNAME=admin" >> $GITHUB_ENV | |
echo "CEPH_POOLNAME=devpool" >> $GITHUB_ENV | |
echo "CEPH_CLIENTNAME=client.admin" >> $GITHUB_ENV | |
echo "CEPH_DISK_SIZE=$(df --output=size -B 1 /mnt | sed -n '2p' | sed 's/[[:blank:]]//g')" >> $GITHUB_ENV | |
echo "CEPH_KEYRING_FILENAME=/etc/ceph/ceph.client.admin.keyring" >> $GITHUB_ENV | |
echo "CEPH_MONITORS=$(hostname):6789" >> $GITHUB_ENV | |
echo "CEPH_CONFIG_FILE=/etc/ceph/ceph.conf" >> $GITHUB_ENV | |
sudo chmod +r /etc/ceph/ceph.client.admin.keyring | |
- name: Install dependencies | |
run: | | |
sudo apt install -y libcephfs-dev librbd-dev librados-dev | |
- name: Run go tests | |
run: | | |
make integration-tests |