From 80fefd1cf5f0cf73cb78cde666d37fab5c25d28c Mon Sep 17 00:00:00 2001 From: Gabriel Camargo Date: Tue, 10 Sep 2024 05:56:31 -0300 Subject: [PATCH] :sparkles: feat: add build and release --- .github/workflows/build-and-release.yml | 57 +++++++++++++++++++++++++ .gitignore | 3 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-and-release.yml diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml new file mode 100644 index 0000000..c60016f --- /dev/null +++ b/.github/workflows/build-and-release.yml @@ -0,0 +1,57 @@ +name: Build and Release + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, fedora-latest, centos-latest] + include: + - os: ubuntu-latest + install: sudo apt-get update && sudo apt-get install -y libboost-all-dev clang + - os: windows-latest + install: choco install llvm boost-msvc + - os: fedora-latest + install: sudo dnf install -y clang boost-devel + - os: centos-latest + install: sudo yum install -y clang boost-devel + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Clang + if: matrix.os == 'windows-latest' + uses: egor-tensin/setup-clang@v9 + + - name: Install dependencies + run: ${{ matrix.install }} + + - name: Build project + run: | + if [ "${{ matrix.os }}" == "windows-latest" ]; then + clang++ -o cmr_cache.exe main.cpp -I./vendor/yaml -lboost_system -lpthread -std=c++17 -O3 + else + clang++ -o cmr_cache main.cpp -I./vendor/yaml -lboost_system -lpthread -std=c++17 -O3 + fi + + - name: Create Release Archive + run: | + mkdir -p release + if [ "${{ matrix.os }}" == "windows-latest" ]; then + cp cmr_cache.exe release/ + else + cp cmr_cache release/ + fi + tar -czf cmr_cache_${{ matrix.os }}.tar.gz release + + - name: Upload Release Archive + uses: actions/upload-artifact@v3 + with: + name: cmr_cache_${{ matrix.os }} + path: cmr_cache_${{ matrix.os }}.tar.gz diff --git a/.gitignore b/.gitignore index 68ea990..3b69524 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -build* +build/* +build.* *.exe data/*.dat .env*