diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..3034a83c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: Continuous Integration +on: + pull_request: + types: + - opened + - reopened + - synchronize + branches: + - master + push: + branches: + - master + tags: + - '**' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + build-run-test: + runs-on: ubuntu-latest + steps: + - name: Check out repository contents + uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Build binary + run: | + docker build --tag lustre_exporter:binary -f docker/Dockerfile . + - name: Build rpm + run: | + docker build -t lustre_exporter:rpm -f docker/RPM-Dockerfile . + + - name: Extract binary + if: startsWith(github.ref, 'refs/tags/v') + run: | + docker run --rm -v $PWD:/cpy lustre_exporter:binary + sudo chown -R $USER:$GROUP build + - name: Upload binary + uses: actions/upload-artifact@v1.0.0 + if: startsWith(github.ref, 'refs/tags/v') + with: + name: lustre-exporter Binary ${{ github.ref_name }} + path: build/ + - name: Extract rpm + if: startsWith(github.ref, 'refs/tags/v') + run: | + sudo rm -rf build + docker run --rm -v $PWD:/rpm lustre_exporter:rpm + sudo chown -R $USER:$GROUP build + - name: Upload RPM + uses: actions/upload-artifact@v1.0.0 + if: startsWith(github.ref, 'refs/tags/v') + with: + name: lustre-exporter RPM ${{ github.ref_name }} + path: build/ diff --git a/README.md b/README.md index 36b18f3f..4085bf5f 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ +[![Continuous Integration](https://github.com/GSI-HPC/lustre_exporter/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/GSI-HPC/lustre_exporter/actions/workflows/ci.yml) [Prometheus](https://prometheus.io/) exporter for [Lustre](https://www.lustre.org/) metrics.