From 09f84da52442a6490ef6b6db574d6a81f206c29f Mon Sep 17 00:00:00 2001 From: maxime1907 <19607336+maxime1907@users.noreply.github.com> Date: Sat, 8 Mar 2025 13:11:49 +0100 Subject: [PATCH] chore(ci): use new ambuild action --- .github/workflows/ci.yml | 143 ++++++++++++++++----------------------- .gitignore | 3 + sm-ext-common | 2 +- 3 files changed, 62 insertions(+), 86 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48ea8c7..0b7bd51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,116 +1,89 @@ -name: CI +name: Build AlliedModders extension -on: [push, pull_request, workflow_dispatch] +on: + push: + branches: + - master + - main + tags: + - "*" + pull_request: + branches: + - master + - main jobs: build: - name: Build - runs-on: ${{ matrix.os }} strategy: - fail-fast: false matrix: - os: [ubuntu-20.04] - sourcemod-version: [1.11-dev] + os: + - ubuntu-20.04 + - windows-2022 include: - os: ubuntu-20.04 - target-archs: x86,x86_64 - sdks: css - + cc: clang-10 + cxx: clang++-10 + - os: windows-2022 + cc: msvc + cxx: msvc + fail-fast: false + name: ${{ matrix.os }} - ${{ matrix.cc }} + runs-on: ${{ matrix.os }} steps: - - name: Install Linux packages - if: runner.os == 'Linux' - run: | - sudo apt update - sudo apt install -yq --no-install-recommends g++-multilib - - - name: Set up Python - uses: actions/setup-python@v2 - - - name: Checkout - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: - path: extension + submodules: true - - name: Checkout SourceMod - uses: actions/checkout@v2 + - name: Build extension + uses: srcdslab/action-ambuild@v1 + id: ambuild with: - repository: alliedmodders/sourcemod - ref: ${{ matrix.sourcemod-version }} - path: sourcemod - submodules: recursive + os: ${{ matrix.os }} + cc: ${{ matrix.cc }} + cxx: ${{ matrix.cxx }} + ambuild-ref: 'master' + mm-ref: '1.12-dev' + sm-ref: '1.12-dev' + hl2sdk-manifests-ref: 'master' + sdks: 'css' + configure-path: '../sm-ext-common/configure.py' + configure-additional-flags: '--enable-optimize --enable-auto-versioning --ext-root "../"' - - name: Checkout AMBuild - uses: actions/checkout@v2 - with: - repository: alliedmodders/ambuild - path: ambuild - - - name: Checkout sm-ext-common - uses: actions/checkout@v2 - with: - repository: srcdslab/sm-ext-common - path: sourcemod/extensions/sm-ext-common - - - name: Install sourcemod dependencies - run: | - bash sourcemod/tools/checkout-deps.sh -m -s ${{ matrix.sdks }} - - - name: Install AMBuild - uses: BSFishy/pip-action@v1 - with: - packages: ./ambuild - - - name: Build - working-directory: extension - shell: bash - env: - BREAKPAD_SYMBOL_SERVER: ${{ secrets.BREAKPAD_SYMBOL_SERVER }} - run: | - mkdir build && cd build - python ../configure.py --enable-optimize --targets=${{ matrix.target-archs }} --sdks=${{ matrix.sdks }} - ambuild - - - name: Upload artifact - uses: actions/upload-artifact@v2 + - name: Upload package + uses: actions/upload-artifact@v4 with: name: ${{ runner.os }} - path: extension/build/package - + path: ${{ steps.ambuild.outputs.package-path }} + if-no-files-found: error + retention-days: 14 release: - name: Release + name: Github release if: startsWith(github.ref, 'refs/tags/') needs: build runs-on: ubuntu-latest - steps: - name: Download artifacts - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 + with: + path: ./gh-artifacts - - name: Package + - name: Package artifacts + working-directory: gh-artifacts run: | version=`echo $GITHUB_REF | sed "s/refs\/tags\///"` - ls -Rall - if [ -d "./Linux/" ]; then - cd ./Linux/ - tar -czf ../${{ github.event.repository.name }}-${version}-linux.tar.gz -T <(\ls -1) - cd - - fi - if [ -d "./macOS/" ]; then - cd ./macOS/ - tar -czf ../${{ github.event.repository.name }}-${version}-mac.tar.gz -T <(\ls -1) - cd - - fi - if [ -d "./Windows/" ]; then - cd ./Windows/ - tar -czf ../${{ github.event.repository.name }}-${version}-windows.tar.gz -T <(\ls -1) - cd - - fi + for platform in *; do + if [ -d "./$platform/" ]; then + cd "./$platform/" + tar -czf "../${{ github.event.repository.name }}-${platform,,}.tar.gz" -T <(ls -1) + cd - + fi + done - - name: Release + - name: Release packages uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: '*.tar.gz' + file: './gh-artifacts/*.tar.gz' tag: ${{ github.ref }} file_glob: true diff --git a/.gitignore b/.gitignore index 028dca0..d10ce5e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ build Containerfile .venv safetyhook +ambuild +*.env +*.ps1 diff --git a/sm-ext-common b/sm-ext-common index 8247958..2adde8c 160000 --- a/sm-ext-common +++ b/sm-ext-common @@ -1 +1 @@ -Subproject commit 82479584231da5ccbad9903ce4aaf1f07e35f1e8 +Subproject commit 2adde8cc6fdb3e32beee27349af1beb1769a5872