diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 0000000..b3ea8cb --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,75 @@ +name: Build & Release ISO + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + path: byondvm + + - name: Cache Buildroot CCache + id: cache-ccache + uses: actions/cache@v3 + with: + path: ~/.buildroot-ccache + key: linux-buildroot-ccache + + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v1 + id: cpu-cores + + - name: Download Buildroot + run: | + wget https://buildroot.org/downloads/buildroot-2022.05.tar.gz + tar -xzf ./buildroot-2022.05.tar.gz + mv -v ./buildroot-2022.05/ ./buildroot + mv -v ./byondvm ./buildroot/byondvm + + - name: Setup Buildroot + run: | + sudo apt-get update + sudo apt-get install -y sed make binutils build-essential diffutils gcc gcc-multilib g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc findutils wget + + - name: Compile + run: | + cd ./buildroot + export BR2_EXTERNAL=byondvm + make defconfig byondvm_defconfig + make -j ${{ steps.cpu-cores.outputs.count }} + make -j ${{ steps.cpu-cores.outputs.count }} + mv ./output/images/rootfs.iso9660 ./controller.iso + + - name: 'Upload Artifact' + uses: actions/upload-artifact@v3 + with: + name: controller.iso + path: buildroot/controller.iso + + - name: Set current date as env variable + if: github.event_name == 'push' + run: | + cd ./buildroot/byondvm # Go to the actual repo + echo "HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Push tag + if: github.event_name == 'push' + run: | + cd ./buildroot/byondvm # Go to the actual repo + git tag ${{ env.HASH }} + git push origin --tags + + - name: Create Release + uses: ncipollo/release-action@v1 + if: github.event_name == 'push' + with: + artifacts: "buildroot/controller.iso" + tag: ${{ env.HASH }} + generateReleaseNotes: true