# This file is a part of the UMSKT Project # # Copyleft (C) 2019-2023 UMSKT Contributors (et.al.) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # @FileCreated by TheTank20 on 06/13/2023 # @Maintainer Neo name: C/C++ CI (Linux) on: push: branches: [ "*" ] paths-ignore: [ '**.md', 'doc/**', '.idea/**'] # If only these files are edited, skip workflow_dispatch: jobs: build: strategy: matrix: include: - arch: x86 runner: ubuntu-latest use_alpine: true - arch: x86_64 runner: ubuntu-latest use_alpine: true - arch: aarch64 runner: ubuntu-24.04-arm use_alpine: false runs-on: ${{ matrix.runner }} steps: - name: Checkout Source Tree uses: actions/checkout@v4 - name: Setup latest Alpine Linux if: ${{ matrix.use_alpine }} uses: jirutka/setup-alpine@v1 with: packages: > bash build-base cmake git musl-dev openssl-dev openssl-libs-static zlib-dev arch: ${{ matrix.arch }} shell-name: alpine-target.sh - name: Install Dependencies (Ubuntu ARM64) if: ${{ !matrix.use_alpine }} run: | sudo apt-get update sudo apt-get install -y build-essential cmake git libssl-dev zlib1g-dev - name: Configure and build UMSKT (Alpine) if: ${{ matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=ON run-build: true shell: alpine-target.sh {0} - name: Configure and build UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=ON run-build: true - name: Test UMSKT (Alpine) if: ${{ matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574 shell: alpine-target.sh {0} - name: Test UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574 - name: Move files to correct directory run: | mkdir -p build/actions_upload mv build/umskt build/actions_upload/umskt - name: Upload build artifact uses: actions/upload-artifact@v4.6.2 with: name: UMSKT-Linux-${{ matrix.arch }}-static path: build/actions_upload - name: Configure and build static internal deps UMSKT (Alpine) if: ${{ matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=OFF BUILD_SHARED_LIBS=OFF run-build: true shell: alpine-target.sh {0} - name: Configure and build static internal deps UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=OFF BUILD_SHARED_LIBS=OFF run-build: true - name: Test static internal deps UMSKT (Alpine) if: ${{ matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574 shell: alpine-target.sh {0} - name: Test static internal deps UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574 - name: Configure and build shared deps UMSKT (Alpine) if: ${{ matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=OFF BUILD_SHARED_LIBS=ON run-build: true shell: alpine-target.sh {0} - name: Configure and build shared deps UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} uses: threeal/cmake-action@7ef2eb8da6e5ec0a6de6b1ddc96987080bed06e8 with: options: MUSL_STATIC=OFF BUILD_SHARED_LIBS=ON run-build: true - name: Test shared deps UMSKT (Alpine) if: ${{ matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574 shell: alpine-target.sh {0} - name: Test shared deps UMSKT (Ubuntu) if: ${{ !matrix.use_alpine }} run: | cd build echo Test 1 - generating key ./umskt -b 2C -c 365 -s 069420 -v echo Test 2 - generating confid ./umskt -i 253286028742154311079061239762245184619981623171292574