name: Build and Release on: push: tags: - '*' # Trigger on any tag push jobs: build_and_release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Python (needed for Conan) uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install Conan run: | python -m pip install --upgrade pip pip install conan - name: Configure Conan run: | conan profile detect - name: Install dependencies and build with Conan run: | conan install . --build=missing conan build . - name: Determine if prerelease id: prerelease_check run: | TAG=${GITHUB_REF##refs/tags/} if [[ "$TAG" == prerelease-* ]]; then echo "true" > prerelease.txt else echo "false" > prerelease.txt fi echo "prerelease=$(cat prerelease.txt)" >> $GITHUB_OUTPUT - name: Archive build folder run: | TAG=${GITHUB_REF##refs/tags/} ARCH=$(uname -m) TAR_NAME="chloride-$TAG-linux-${ARCH}.tar.gz" mv build/bin chloride cp LICENSE chloride tar -czf "$TAR_NAME" chloride echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV - name: Create GitHub Release id: create_release uses: ncipollo/release-action@v1 with: tag: ${{ github.ref_name }} name: Release ${{ github.ref_name }} body: | Automated release based on tag ${{ github.ref_name }} draft: false prerelease: ${{ steps.prerelease_check.outputs.prerelease }} artifacts: ${{ env.TAR_NAME }}