summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/tests.yml58
1 files changed, 58 insertions, 0 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 00000000..8dc12fb4
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,58 @@
+name: tests
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ pull_request:
+ paths:
+ - '*.c'
+ - '*.h'
+jobs:
+ upstream_tests:
+ if: ${{ github.repository == 'md-raid-utilities/mdadm' }}
+ runs-on: self-hosted
+ timeout-minutes: 150
+ name: upstream tests
+ steps:
+ - uses: actions/checkout@v4
+ if: ${{ github.event_name == 'pull_request' }}
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: 0
+ - uses: actions/checkout@v4
+ if: ${{ github.event_name == 'schedule' }}
+ with:
+ ref: main
+ fetch-depth: 0
+ - name: 'Prepare machine'
+ run: |
+ cd ..
+ vagrant halt
+ vagrant status
+ vagrant up
+ - name: 'Run tests'
+ run: |
+ cd ..
+ vagrant ssh -c "cd /home/vagrant/host/mdadm && .github/tools/run_mdadm_tests.sh"
+ - name: 'Copy logs to host machine'
+ run: |
+ cd ..
+ vagrant ssh -c "sudo mkdir -p /home/vagrant/host/logs && sudo mv /var/tmp/*.log /home/vagrant/host/logs"
+ - name: "Save artifacts"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "Logs from failed tests"
+ path: /home/ci/actions-runner/_work/mdadm/logs/*.log
+ - name: "Clean logs"
+ run: |
+ cd ..
+ sudo rm /home/ci/actions-runner/_work/mdadm/logs/*.log
+ cleanup:
+ runs-on: self-hosted
+ needs: [upstream_tests]
+ steps:
+ - name: Restore clean VM
+ run: |
+ cd ..
+ vagrant up
+ vagrant ssh -c "sudo mdadm -Ss"
+ vagrant halt