chore: Refactor Snort package creation process #60
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Package Snort 3 | |
on: | |
push: | |
branches: | |
- "*" | |
permissions: | |
contents: write # Required to create releases and upload assets | |
jobs: | |
build: | |
name: Build and Package Snort 3 | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: [amd64, arm64] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Install dependencies | |
run: sudo apt-get update && sudo apt-get install -y git dpkg-dev | |
- name: Build and Package Snort 3 | |
run: | | |
ARCH=${{ matrix.arch }} | |
bash ./scripts/snort3.sh | |
mkdir -p /work/packages/$ARCH | |
mv /work/*.deb /work/packages/$ARCH/ | |
- name: Upload packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: snort3-packages-${{ matrix.arch }} | |
path: /work/packages/${{ matrix.arch }} | |
deploy: | |
name: Publish Release | |
runs-on: ubuntu-latest | |
needs: build | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Create work directory | |
run: sudo mkdir -p /work && sudo chmod -R 777 /work | |
- name: Download amd64 packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: snort3-packages-amd64 | |
path: /work/packages/amd64 | |
- name: Download arm64 packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: snort3-packages-arm64 | |
path: /work/packages/arm64 | |
- name: Create Tag and Release | |
id: create_release | |
run: | | |
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7) | |
TAG_NAME="v1.0.${{ github.run_number }}-$SHORT_SHA" | |
git tag $TAG_NAME | |
git push origin $TAG_NAME | |
gh release create $TAG_NAME --title "Snort 3 Release $TAG_NAME" --notes "Release for commit $GITHUB_SHA" | |
- name: Upload amd64 packages to Release | |
run: | | |
for file in /work/packages/amd64/*.deb; do | |
gh release upload $TAG_NAME $file --clobber | |
done | |
- name: Upload arm64 packages to Release | |
run: | | |
for file in /work/packages/arm64/*.deb; do | |
gh release upload $TAG_NAME $file --clobber | |
done |