name: CI # Run tests on pull requests and when changes are directly # commited to master. on: push: branches: [ master ] pull_request: branches: - master # run the CI also on PRs that are based on branches starting with pr/... - 'pr/**' schedule: - cron: 1 1 * * * jobs: # Run static/code-quality checks check: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v2 with: go-version: 1.14 - uses: actions/checkout@v2 - name: Install revive run: go get github.com/mgechev/revive - name: Run checks run: make check # Run the test suite in a container per-ceph-codename test-suite: runs-on: ubuntu-latest strategy: matrix: ceph_version: - "nautilus" - "octopus" - "pacific" steps: - uses: actions/checkout@v2 - name: Run tests run: make test-containers-test "CEPH_VERSION=${{ matrix.ceph_version }}" "RESULTS_DIR=$PWD/_results" - name: Run tests with ptrguard run: make test-containers-test "CEPH_VERSION=${{ matrix.ceph_version }}" "USE_PTRGUARD=true" "RESULTS_DIR=$PWD/_results" - name: Clean up test containers run: make test-containers-clean "CEPH_VERSION=${{ matrix.ceph_version }}" - name: Archive coverage results uses: actions/upload-artifact@v2 with: name: "go-ceph-coverage-${{ matrix.ceph_version }}" path: "_results/coverage/go-ceph.html" - name: Archive implements results if: "matrix.ceph_version == 'pacific'" uses: actions/upload-artifact@v2 with: name: "go-ceph-implements-${{ matrix.ceph_version }}" path: "_results/implements.*" - name: Check API Versions and Aging run: | if [ -f _results/implements.json ]; then ./contrib/apiage.py else echo "Skipping apiage check" fi