From 10b5a59774db2857edbccd3c37ea554cecf75468 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 8 Mar 2024 17:07:40 +0100 Subject: [PATCH] Packaging in CI (#59) * CI: added packaging recipe * Simplification * Same workflow * Using artifacts * Prefixing tests with 'command' for GH workflow * Bumped 'actions/checkout' to v4 to silence Node.js deprecation warning * Ensuring tests are executable * Chmod'ing before running test * Compress/uncompress artifacts to preserve files permission * Dropped chmod * Dropped extra path * Updated path * Only build package on new tag --- .github/workflows/build.yml | 60 ++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eff29bd33..1e20a10b5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,7 @@ name: Build on: push: branches: master + tags: pull_request: branches: master @@ -18,19 +19,70 @@ jobs: image: 'laufor/ci-images:cepgen-fedora39' options: -v ${{ github.workspace }}:/Package steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: seanmiddleditch/gha-setup-ninja@master - - name: CMake configuration + - name: 'CMake configuration' run: | git config --global --add safe.directory /Package cmake -GNinja -B ${{env.CEPGEN_PATH}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_BUILD_TESTS=ON - - name: Build + - name: 'Build environment' run: cmake --build ${{env.CEPGEN_PATH}} + - name: 'Compress environment' + run: tar -cvf environment.tar /Package + - name: 'Upload artifacts' + uses: actions/upload-artifact@v4 + with: + name: build-env + path: environment.tar + + test: + needs: build + runs-on: ubuntu-latest + container: + image: 'laufor/ci-images:cepgen-fedora39' + options: -v ${{ github.workspace }}:/Package + steps: + - uses: actions/checkout@v4 + - name: 'Download artifacts' + uses: actions/download-artifact@v4 + with: + name: build-env + - name: 'Uncompress environment' + run: tar -xvf environment.tar -C / + - uses: seanmiddleditch/gha-setup-ninja@master - name: Test working-directory: ${{env.CEPGEN_PATH}} run: | echo "PYTHONPATH=${{env.CEPGEN_PATH}}:$PYTHONPATH" >> $GITHUB_ENV - ctest -C ${{env.BUILD_TYPE}} -LE "unstable" --verbose --output-on-failure + ctest -C ${{env.BUILD_TYPE}} -LE "unstable" --output-on-failure + + package: + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + needs: build + runs-on: ubuntu-latest + container: + image: 'laufor/ci-images:cepgen-fedora39' + options: -v ${{ github.workspace }}:/Package + steps: + - uses: actions/checkout@v4 + + - name: 'Download artifacts' + uses: actions/download-artifact@v4 + with: + name: build-env + - name: 'Uncompress environment' + run: tar -xvf environment.tar -C / + + - uses: seanmiddleditch/gha-setup-ninja@master + - name: Package + run: cmake --build ${{env.CEPGEN_PATH}} --target package + + - name: 'Upload artifacts' + uses: actions/upload-artifact@v4 + with: + name: packages + path: ${{env.CEPGEN_PATH}}/*.rpm + if-no-files-found: warn