diff --git a/.github/workflows/vanilla-os.yml b/.github/workflows/vanilla-os.yml new file mode 100644 index 0000000..59377da --- /dev/null +++ b/.github/workflows/vanilla-os.yml @@ -0,0 +1,85 @@ +name: vanilla-os + +on: + push: + branches: + - vanilla-os + paths-ignore: + - '.github/workflows/**' + schedule: + - cron: '0 4 * * 1' + workflow_dispatch: + +env: + BRANCH: vanilla-os + GITHUB_ENDPOINT: netbootxyz/asset-mirror + DISCORD_HOOK_URL: ${{ secrets.DISCORD_HOOK_URL }} + BUILD_TYPE: iso_extraction + DEBIAN_FRONTEND: noninteractive + CI_TOKEN: ${{ secrets.CI_TOKEN }} + +jobs: + version-checker: + name: Version Checker + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: vanilla-os + + - name: Get SHA of actual branch instead of master + run: | + export GITHUB_SHA=$(git rev-parse HEAD) + echo "GITHUB_SHA=$GITHUB_SHA" >> $GITHUB_ENV + + - name: Retrieve latest version from upstream and set vars + run: | + export EXTERNAL_VERSION=$(sudo bash version.sh) + echo "EXTERNAL_VERSION=$EXTERNAL_VERSION" >> $GITHUB_ENV + export GITHUB_TAG=${EXTERNAL_VERSION}-$(echo ${{ env.GITHUB_SHA }} | cut -c1-8) + echo "GITHUB_TAG=$GITHUB_TAG" >> $GITHUB_ENV + wget https://raw.githubusercontent.com/netbootxyz/build-pipelines/master/build.sh && chmod +x build.sh + + - name: Compare tag + id: compare + run: ./build.sh compare ${{ env.GITHUB_TAG }} + continue-on-error: true + + - name: Build if newer tag is available + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + run: | + ./build.sh build ${{ env.BUILD_TYPE }} + git tag ${{ env.GITHUB_TAG }} + + - name: Generate Release Notes + run: | + echo "Release generated for Branch: **${{ env.BRANCH }}**" > ${{ github.workspace }}-CHANGELOG.txt + + - name: Create release and upload assets + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ env.GITHUB_TAG }} + name: ${{ env.GITHUB_TAG }} + draft: false + prerelease: false + files: buildout/* + token: ${{ secrets.GITHUB_TOKEN }} + body_path: ${{ github.workspace }}-CHANGELOG.txt + + - name: Generate endpoints + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + run: | + git config --global user.name netboot-ci + git config --global user.email netboot-ci@netboot.xyz + ./build.sh endpoints ${{ env.GITHUB_TAG }} + + - name: Notify Discord on failure + if: failure() + run: | + ./build.sh discord failure + + - name: Notify Discord on completion + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' && success() + run: | + ./build.sh discord success diff --git a/.github/workflows/zfsbootmenu.yml b/.github/workflows/zfsbootmenu.yml new file mode 100644 index 0000000..a09fdd2 --- /dev/null +++ b/.github/workflows/zfsbootmenu.yml @@ -0,0 +1,85 @@ +name: zfsbootmenu + +on: + push: + branches: + - zfsbootmenu + paths-ignore: + - '.github/workflows/**' + schedule: + - cron: '0 4 * * 1' + workflow_dispatch: + +env: + BRANCH: zfsbootmenu + GITHUB_ENDPOINT: netbootxyz/asset-mirror + DISCORD_HOOK_URL: ${{ secrets.DISCORD_HOOK_URL }} + BUILD_TYPE: direct_file + DEBIAN_FRONTEND: noninteractive + CI_TOKEN: ${{ secrets.CI_TOKEN }} + +jobs: + version-checker: + name: Version Checker + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: zfsbootmenu + + - name: Get SHA of actual branch instead of master + run: | + export GITHUB_SHA=$(git rev-parse HEAD) + echo "GITHUB_SHA=$GITHUB_SHA" >> $GITHUB_ENV + + - name: Retrieve latest version from upstream and set vars + run: | + export EXTERNAL_VERSION=$(sudo bash version.sh) + echo "EXTERNAL_VERSION=$EXTERNAL_VERSION" >> $GITHUB_ENV + export GITHUB_TAG=${EXTERNAL_VERSION}-$(echo ${{ env.GITHUB_SHA }} | cut -c1-8) + echo "GITHUB_TAG=$GITHUB_TAG" >> $GITHUB_ENV + wget https://raw.githubusercontent.com/netbootxyz/build-pipelines/master/build.sh && chmod +x build.sh + + - name: Compare tag + id: compare + run: ./build.sh compare ${{ env.GITHUB_TAG }} + continue-on-error: true + + - name: Build if newer tag is available + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + run: | + ./build.sh build ${{ env.BUILD_TYPE }} + git tag ${{ env.GITHUB_TAG }} + + - name: Generate Release Notes + run: | + echo "Release generated for Branch: **${{ env.BRANCH }}**" > ${{ github.workspace }}-CHANGELOG.txt + + - name: Create release and upload assets + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ env.GITHUB_TAG }} + name: ${{ env.GITHUB_TAG }} + draft: false + prerelease: false + files: buildout/* + token: ${{ secrets.GITHUB_TOKEN }} + body_path: ${{ github.workspace }}-CHANGELOG.txt + + - name: Generate endpoints + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' + run: | + git config --global user.name netboot-ci + git config --global user.email netboot-ci@netboot.xyz + ./build.sh endpoints ${{ env.GITHUB_TAG }} + + - name: Notify Discord on failure + if: failure() + run: | + ./build.sh discord failure + + - name: Notify Discord on completion + if: steps.compare.outcome == 'success' && steps.compare.conclusion == 'success' && success() + run: | + ./build.sh discord success