diff --git a/.github/actions/archive-install/action.yml b/.github/actions/archive-install/action.yml new file mode 100644 index 000000000..aba56eab6 --- /dev/null +++ b/.github/actions/archive-install/action.yml @@ -0,0 +1,32 @@ +name: Archive installed package +inputs: + path: + description: Directory to archive + required: true + name: + description: Artifact name + required: true +runs: + using: composite + steps: + - id: set-archive + shell: bash + run: | + if [ "${RUNNER_OS}" = "Windows" ]; then + echo "archive=${{ inputs.name }}.zip" >> "$GITHUB_OUTPUT" + else + echo "archive=${{ inputs.name }}.tar.gz" >> "$GITHUB_OUTPUT" + fi + - name: Compress directory (unix) + if: runner.os != 'Windows' + shell: bash + run: tar -czvf "${{ steps.set-archive.outputs.archive }}" -C "${{ inputs.path }}" . + - name: Compress directory (windows) + if: runner.os == 'Windows' + shell: pwsh + run: Compress-Archive -Path ${{ inputs.path }} -DestinationPath ${{ steps.set-archive.outputs.archive }} + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ inputs.name }} + path: ${{ steps.set-archive.outputs.archive }} diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 87b184546..53550945b 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -36,13 +36,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf macos-clang-sanitizer-install.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: macos-clang-sanitizer-install - path: macos-clang-sanitizer-install.tar.gz macos-clang-build-debug: runs-on: macOS-latest steps: @@ -77,13 +74,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf macos-clang-debug-install.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: macos-clang-debug-install - path: macos-clang-debug-install.tar.gz macos-clang-test: needs: - macos-clang-build diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 7904b1b3b..eebef16a5 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -46,13 +46,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf ubuntu-gcc-install-${{ matrix.os }}.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: ubuntu-gcc-install-${{ matrix.os }} - path: ubuntu-gcc-install-${{ matrix.os }}.tar.gz ubuntu-gcc-build-debug: runs-on: ${{ matrix.os }} strategy: @@ -91,13 +88,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf ubuntu-gcc-debug-install-${{ matrix.os }}.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: ubuntu-gcc-debug-install-${{ matrix.os }} - path: ubuntu-gcc-debug-install-${{ matrix.os }}.tar.gz ubuntu-gcc-test: needs: - ubuntu-gcc-build @@ -242,13 +236,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf ubuntu-clang-install-${{ matrix.os }}.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: ubuntu-clang-install-${{ matrix.os }} - path: ubuntu-clang-install-${{ matrix.os }}.tar.gz ubuntu-clang-test: needs: - ubuntu-clang-build @@ -402,13 +393,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: | - tar -czvf ubuntu-clang-sanitizer-install-${{ matrix.os }}.tar.gz -C install . - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: ubuntu-clang-sanitizer-install-${{ matrix.os }} - path: ubuntu-clang-sanitizer-install-${{ matrix.os }}.tar.gz ubuntu-clang-sanitizer-test: needs: - ubuntu-clang-sanitizer-build diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2dceaec12..f79bbebe9 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -41,13 +41,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: Compress-Archive -Path install -DestinationPath windows-msvc-install.zip - shell: pwsh - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: windows-msvc-install - path: windows-msvc-install.zip windows-msvc-build-debug: runs-on: windows-latest defaults: @@ -87,13 +84,10 @@ jobs: run: | cmake --build build --target install - name: Archive installed package - run: Compress-Archive -Path install -DestinationPath windows-msvc-debug-install.zip - shell: pwsh - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: windows-msvc-debug-install - path: windows-msvc-debug-install.zip windows-msvc-test: needs: - windows-msvc-build @@ -249,13 +243,10 @@ jobs: run: | cmake --install build - name: Archive installed package - run: Compress-Archive -Path install -DestinationPath windows-clang-install.zip - shell: pwsh - - name: Upload installed package - uses: actions/upload-artifact@v4 + uses: ./.github/actions/archive-install with: + path: install name: windows-clang-install - path: windows-clang-install.zip windows-clang-test: needs: - windows-clang-build