diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2b17ebe --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,58 @@ +name: Compile and Publish genext2fs + +on: + push: + branches: + - master + - main + +jobs: + build: + runs-on: ubuntu-20.04 + permissions: + contents: write + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Build + run: | + docker run --rm -v $PWD:/app -w /app ubuntu:22.04 /app/build.sh + tar -czvf genext2fs.tar.gz genext2fs + + - name: Save package + uses: actions/upload-artifact@v3 + with: + name: genext2fs + path: build + + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: release_${{ github.sha }} + release_name: Release ${{ github.ref }} + body: | + Release @${{ github.ref }} + draft: true + prerelease: false + + - name: Upload release asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./genext2fs.tar.gz + asset_name: genext2fs.tar.gz + asset_content_type: application/gzip + + - name: Publish release + uses: StuYarrow/publish-release@v1.1.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + id: ${{ steps.create_release.outputs.id }} diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..3f84785 --- /dev/null +++ b/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -eux + +# Add source URIs +sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list +apt-get update + +# Download dependencies +apt build-dep -y genext2fs + +# Configure with libarchive +./autogen.sh + +./configure --enable-libarchive + +# Build +make -j$(nproc)