name: publish on: push: branches: - master pull_request: workflow_dispatch: permissions: contents: read packages: write actions: write env: CONAN_HOME: build/build_common/conan_cache MODULUS_DIRECT: "1" jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install build dependencies run: | if [ -r /etc/os-release ]; then . /etc/os-release fi if [ "${ID:-}" = "ubuntu" ] && [ -n "${VERSION_CODENAME:-}" ]; then if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then sed -i '/^Types: deb$/a Architectures: amd64' /etc/apt/sources.list.d/ubuntu.sources printf '%s\n' \ 'Types: deb' \ 'URIs: http://ports.ubuntu.com/ubuntu-ports/' \ "Suites: ${VERSION_CODENAME} ${VERSION_CODENAME}-updates ${VERSION_CODENAME}-backports" \ 'Components: main universe restricted multiverse' \ 'Architectures: arm64' \ 'Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg' \ '' \ 'Types: deb' \ 'URIs: http://ports.ubuntu.com/ubuntu-ports/' \ "Suites: ${VERSION_CODENAME}-security" \ 'Components: main universe restricted multiverse' \ 'Architectures: arm64' \ 'Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg' \ > /etc/apt/sources.list.d/ubuntu-arm64.sources elif [ -f /etc/apt/sources.list ]; then sed -i 's|^deb http://archive.ubuntu.com/ubuntu|deb [arch=amd64] http://archive.ubuntu.com/ubuntu|' /etc/apt/sources.list sed -i 's|^deb http://security.ubuntu.com/ubuntu|deb [arch=amd64] http://security.ubuntu.com/ubuntu|' /etc/apt/sources.list printf '%s\n' \ "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${VERSION_CODENAME} main universe restricted multiverse" \ "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${VERSION_CODENAME}-updates main universe restricted multiverse" \ "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${VERSION_CODENAME}-backports main universe restricted multiverse" \ "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports ${VERSION_CODENAME}-security main universe restricted multiverse" \ > /etc/apt/sources.list.d/ubuntu-arm64.list fi fi dpkg --add-architecture arm64 apt-get update apt-get install -y --no-install-recommends \ build-essential \ ca-certificates \ cmake \ g++-12 \ g++-aarch64-linux-gnu \ gcc-12 \ gcc-aarch64-linux-gnu \ git \ libdrm-dev \ libdrm-dev:arm64 \ libegl-dev \ libegl-dev:arm64 \ libgbm-dev \ libgbm-dev:arm64 \ libgles-dev \ libgles-dev:arm64 \ libglvnd-dev \ libglvnd-dev:arm64 \ ninja-build \ pkg-config \ python3 \ python3-venv python3 -m venv build/build_common/ci_python build/build_common/ci_python/bin/python -m pip install --no-cache-dir conan==2.26.2 echo "$PWD/build/build_common/ci_python/bin" >> "$GITHUB_PATH" - name: Restore Conan cache uses: actions/cache@v4 with: path: build/build_common/conan_cache key: conan-${{ runner.os }}-${{ hashFiles('conanfile.py', 'modulus.json') }} restore-keys: conan-${{ runner.os }}- - name: Configure native release run: python3 modulus.py configure --target x86_64_gcc12_release - name: Build native release run: python3 modulus.py build --target x86_64_gcc12_release - name: Test native release run: python3 modulus.py test --target x86_64_gcc12_release - name: Create and upload packages if: ${{ gitea.event_name == 'workflow_dispatch' || (gitea.event_name == 'push' && gitea.ref == 'refs/heads/master') }} env: CONAN_USER: ${{ secrets.CONAN_USER }} CONAN_TOKEN: ${{ secrets.CONAN_TOKEN }} NOTO_CONAN_UPLOAD: "1" MODULUS_ALLOW_PACKAGE_REPLACE: "1" run: python3 modulus.py package --all --replace