瀏覽代碼

Merge pull request #1022 from netbootxyz/development

Release 2.0.50-RC
Antony Messerli 3 年之前
父節點
當前提交
7d7cdb26f3

+ 1 - 0
.dockerignore

@@ -0,0 +1 @@
+.git

+ 69 - 0
.github/workflows/rolling.yml

@@ -0,0 +1,69 @@
+name: rolling
+
+on:
+  push:
+    paths:
+      - 'endpoints.yml'
+      - 'roles/netbootxyz/defaults/main.yml'
+    branches:
+      - development
+
+env:
+  DISCORD_HOOK_URL: ${{ secrets.DISCORD_HOOK_URL }}
+  GITHUB_SHA: ${{ github.sha }}
+
+jobs:
+  rolling:
+    name: Build Release
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        ref: 'master'
+
+    - name: Retrieve Certs
+      run: |
+        ./script/retrieve_certs
+      env:
+        GIT_USER: ${{ secrets.GIT_USER }}
+        GIT_AUTH: ${{ secrets.GIT_AUTH }}
+        GIT_URL: ${{ secrets.GIT_URL }}
+        CERTS_KEY: ${{ secrets.CERTS_KEY }}
+
+    - name: Set Release Tag
+      run: echo "release_tag=$(cat version.txt)" >> $GITHUB_ENV
+
+    - name: Download endpoints.yml and main.yml from Development
+      run: |
+        wget https://raw.githubusercontent.com/netbootxyz/netboot.xyz/development/endpoints.yml -O endpoints.yml
+        wget https://raw.githubusercontent.com/netbootxyz/netboot.xyz/development/roles/netbootxyz/defaults/main.yml -O roles/netbootxyz/defaults/main.yml
+        chmod +x script/build_release
+        
+    - name: Build release
+      run: |
+        ./script/build_release rolling
+
+    - name: Configure AWS credentials
+      uses: aws-actions/configure-aws-credentials@v1
+      with:
+        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
+        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+        aws-region: ${{ secrets.AWS_ACCESS_REGION }}
+
+    - name: Deploy master to rolling bucket
+      run: |
+        aws s3 sync --no-progress --acl public-read s3out-latest s3://${{ secrets.AWS_S3_BUCKET_PROD }}
+
+    - name: Invalidate Cloudfront
+      run: |
+        aws cloudfront create-invalidation --distribution-id ${{ secrets.CLOUDFRONT_DIST_ID_PROD }} --paths "/*" "/ipxe/*"
+
+    - name: Notify Discord on failure
+      if: failure()
+      run: |
+        ./script/message failure
+
+    - name: Notify Discord on completion
+      if: success()
+      run: |
+        ./script/message rolling-push

+ 12 - 2
CHANGELOG.md

@@ -4,7 +4,17 @@ All notable changes to this project will be documented in this file.
 
 ## [Unreleased]
 
-## [2.0.49]
+## [2.0.50]
+#### Added
+- Added Clonezilla 32-bit
+
+#### Changed
+- Proper rolling for boot.netboot.xyz implemented, endpoints.yml and defaults
+  are now pushed to boot.netboot.xyz upon update in development branch to
+  ensure version updates can be consumed as identified. Allows for new versions
+  to be available before a release.
+
+## [2.0.49] - 2021-09-29
 #### Added
 - Support for Ubuntu 20.04 Subiquity and up on arm64
 - Added Archlinux 32-bit
@@ -21,7 +31,7 @@ All notable changes to this project will be documented in this file.
 - utilitiespcbios is now utilitiespcbios64 and utilitiespcbios32 for overrides
 - Renamed ubuntu netboot assets to align better with existing branches
 
-## [2.0.48] 2021-09-17
+## [2.0.48] - 2021-09-17
 #### Added
 - Support for Harvester
 - Support for Tails

+ 14 - 4
CONTRIBUTING.md

@@ -34,14 +34,23 @@ distribution.
 
 Ask for the distribution to provide a way to load installer kernels from
 their mirror directly or provide key files from their release ISO somewhere that
-is accessible over HTTP.  This usually might be a `vmlinuz`, an `initrd`, and
+is accessible over HTTP. This usually might be a `vmlinuz`, an `initrd`, and
 potentially a `rootfs` and could be extracted and hosted on the mirror when the
-release is generated.  Providing these allows not only netboot.xyz to load the
+release is generated. Providing these allows not only netboot.xyz to load the
 installer from a supported and trusted location but also users to do the same
-from their own PXE servers.  In this day and age as physical media is less
+from their own PXE servers. In this day and age as physical media is less
 necessary, having the option to pull files as needed is much more efficient
 especially when you may have limited bandwidth.
 
+### Improve the documentation and knowledgebase
+
+We are trying to make netboot.xyz a place to come to learn about infrastructure
+automation so creating good docs on not only the project but how other distributions
+automation works is important. A lot of the logic on booting is currently in code but
+getting those into site documentation as well helps them to be better searchable by
+search engines. If you are a technical writer, feel free to contribute docs that
+would enable others to learn and grow.
+
 ### Submit ideas
 
 We are always looking for new ideas to make the tool more useful, if you have an
@@ -52,10 +61,11 @@ idea, feel free to open up a Github [issue] or open up a [Pull Request].
 * [Discord](https://discord.gg/An6PA2a) Chat Server for netboot.xyz discussions, questions, and development
 * Follow us on [Twitter](https://twitter.com/netbootxyz) at [@netbootxyz](https://twitter.com/netbootxyz)
   for the latest updates
+* Start a [discussion](https://github.com/netbootxyz/netboot.xyz/discussions) or share something cool you have done with the project.
 
 ### Donate
 
-We have set up an [Open Collective](https://opencollective.com/netbootxyz) to open the project up to those who wish to donate to help out the project. This may cover hosting and domain fees, hardware for validation testing, or anything else that comes up in maintaining a project like this. Every little bit will help! If you enjoy the work we do, please support us!
+We have set up an [Open Collective](https://opencollective.com/netbootxyz) and [Github Sponsors](https://github.com/sponsors/netbootxyz) to open the project up to those who wish to donate to help out the project. This may cover hosting and domain fees, hardware for validation testing, or anything else that comes up in maintaining a project like this. Every little bit will help! If you enjoy the work we do, please support us!
 
 ## Enjoy and have fun!
 

+ 95 - 75
endpoints.yml

@@ -293,7 +293,7 @@ endpoints:
     flavor: default
     kernel: backbox-6-default-squash
   kde-neon-user:
-    path: /ubuntu-squash/releases/download/20210923-0947-92641c1f/
+    path: /ubuntu-squash/releases/download/20210930-0945-92641c1f/
     files:
     - vmlinuz
     - filesystem.squashfs
@@ -403,46 +403,6 @@ endpoints:
     os: feren
     version: classic
     kernel: feren-classic-squash
-  clonezilla-debian-stable:
-    path: /debian-squash/releases/download/2.7.3-19-fcb50247/
-    files:
-    - filesystem.squashfs
-    - initrd
-    - vmlinuz
-    os: clonezilla
-    version: debian
-    flavor: stable
-    kernel: clonezilla-debian-stable
-  clonezilla-debian-testing:
-    path: /debian-squash/releases/download/2.8.0-6-002d59cc/
-    files:
-    - filesystem.squashfs
-    - initrd
-    - vmlinuz
-    os: clonezilla
-    version: debian
-    flavor: testing
-    kernel: clonezilla-debian-testing
-  clonezilla-ubuntu-stable:
-    path: /ubuntu-squash/releases/download/20210817-hirsute-2a768141/
-    files:
-    - filesystem.squashfs
-    - initrd
-    - vmlinuz
-    os: clonezilla
-    version: ubuntu
-    flavor: stable
-    kernel: clonezilla-ubuntu-stable
-  clonezilla-ubuntu-testing:
-    path: /ubuntu-squash/releases/download/20210923-hirsute-18e78f5f/
-    files:
-    - filesystem.squashfs
-    - initrd
-    - vmlinuz
-    os: clonezilla
-    version: ubuntu
-    flavor: testing
-    kernel: clonezilla-ubuntu-testing
   breakin:
     path: /asset-mirror/releases/download/4.26.1-8ca03193/
     files:
@@ -662,7 +622,7 @@ endpoints:
     os: blackarch
     version: current
   bluestar:
-    path: /asset-mirror/releases/download/5.14.2-2021.09.12-a3024eea/
+    path: /asset-mirror/releases/download/5.14.7-2021.09.26-a3024eea/
     files:
     - initrd
     - vmlinuz
@@ -772,7 +732,7 @@ endpoints:
     os: raizo
     version: current
   4mlinux:
-    path: /asset-mirror/releases/download/37.0-39ff9a19/
+    path: /asset-mirror/releases/download/37.1-39ff9a19/
     files:
     - initrd
     - vmlinuz
@@ -780,7 +740,7 @@ endpoints:
     version: current
     flavor: full
   4mlinux-thesss:
-    path: /asset-mirror/releases/download/37.0-3ec6e844/
+    path: /asset-mirror/releases/download/37.1-3ec6e844/
     files:
     - initrd
     - vmlinuz
@@ -1021,18 +981,8 @@ endpoints:
     os: fedora
     version: 33
     flavor: MATE_Compiz
-  hirens:
-    path: /asset-mirror/releases/download/v1.0.2-da645fe7/
-    files:
-    - bootmgr
-    - bootmgr.efi
-    - BCD
-    - boot.sdi
-    - boot.wim
-    os: hirens
-    version: v1.0.2
   vyos-rolling:
-    path: /debian-squash/releases/download/202109240217-fdd40a1c/
+    path: /debian-squash/releases/download/202110010217-fdd40a1c/
     files:
     - filesystem.squashfs
     - initrd
@@ -1113,13 +1063,13 @@ endpoints:
     os: ovirt
     version: '4.4'
   nitrux-release:
-    path: /ubuntu-squash/releases/download/2021.09.01-e364d0a5/
+    path: /ubuntu-squash/releases/download/2021.09.30-e364d0a5/
     files:
     - initrd
     - vmlinuz
     - filesystem.squashfs
     os: nitrux
-    version: 2021.09.01
+    version: 2021.09.30
   endeavouros:
     path: /asset-mirror/releases/download/2021.08.27-d09b132d/
     files:
@@ -1310,14 +1260,6 @@ endpoints:
     - special-edition.img
     os: freebsd
     version: '13'
-  xcp-ng:
-    path: /asset-mirror/releases/download/8.2-6c6b5220/
-    files:
-    - xen.gz
-    - vmlinuz
-    - install.img
-    os: xcp-ng
-    version: '8.2'
   pop-21.04-default-squash:
     path: /ubuntu-squash/releases/download/2-7ee5da15/
     files:
@@ -1377,12 +1319,12 @@ endpoints:
     os: proxmox
     version: 7.0-1
   talos:
-    path: /asset-mirror/releases/download/0.12.2-3f5e10e5/
+    path: /asset-mirror/releases/download/0.12.3-3f5e10e5/
     files:
     - vmlinuz
     - initramfs.xz
     os: talos
-    version: 0.12.2
+    version: 0.12.3
   elementaryos-6-default-squash:
     path: /ubuntu-squash/releases/download/6-c6e63f57/
     files:
@@ -1490,31 +1432,31 @@ endpoints:
     os: memtest86-free
     version: '9.2'
   gentoo-x86:
-    path: /asset-mirror/releases/download/20210923T070656Z-6734abfd/
+    path: /asset-mirror/releases/download/20210927T170528Z-6734abfd/
     files:
     - image.squashfs
     - initrd
     - vmlinuz
     os: gentoo
-    version: 20210923T070656Z
+    version: 20210927T170528Z
     arch: x86
   gentoo-arm64:
-    path: /asset-mirror/releases/download/20210919T222130Z-079d67cf/
+    path: /asset-mirror/releases/download/20210926T230639Z-079d67cf/
     files:
     - image.squashfs
     - initrd
     - vmlinuz
     os: gentoo
-    version: 20210919T222130Z
+    version: 20210926T230639Z
     arch: arm64
   gentoo-amd64:
-    path: /asset-mirror/releases/download/20210919T170549Z-383e823f/
+    path: /asset-mirror/releases/download/20210926T170536Z-383e823f/
     files:
     - image.squashfs
     - initrd
     - vmlinuz
     os: gentoo
-    version: 20210919T170549Z
+    version: 20210926T170536Z
     arch: amd64
   tails:
     path: /asset-mirror/releases/download/4.22-28906ec3/
@@ -1615,13 +1557,13 @@ endpoints:
     version: v2020.05.012_x86-64_0.31
     arch: x86_64
   archlinux-32:
-    path: /asset-mirror/releases/download/2021.09.01-6dbad0f9/
+    path: /asset-mirror/releases/download/2021.10.01-6dbad0f9/
     files:
     - airootfs.sfs
     - initramfs-linux.img
     - vmlinuz-linux
     os: archlinux
-    version: 2021.09.01
+    version: 2021.10.01
     arch: i686
   q4os-4.6-default-squash:
     path: /debian-squash/releases/download/4.6-2de282e7/
@@ -1653,3 +1595,81 @@ endpoints:
     flavor: netboot
     kernel: ubuntu-netboot-21.10-amd64
     arch: amd64
+  ubuntu-netboot-21.10-arm64:
+    path: /ubuntu-squash/releases/download/21.10-6a3b01ba/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: ubuntu
+    version: '21.10'
+    codename: impish
+    flavor: netboot
+    kernel: ubuntu-netboot-21.10-arm64
+    arch: arm64
+  clonezilla-debian-stable-i686:
+    path: /debian-squash/releases/download/2.7.3-19-21f7bd02/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 2.7.3-19
+    flavor: stable
+    kernel: clonezilla-debian-stable-i686
+    arch: i686
+  clonezilla-debian-stable-amd64:
+    path: /debian-squash/releases/download/2.7.3-19-a90fc92f/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 2.7.3-19
+    flavor: stable
+    kernel: clonezilla-debian-stable-amd64
+    arch: amd64
+  clonezilla-ubuntu-stable-amd64:
+    path: /ubuntu-squash/releases/download/20210817-hirsute-86411ada/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 20210817-hirsute
+    flavor: stable
+    kernel: clonezilla-ubuntu-stable-amd64
+    arch: amd64
+  clonezilla-debian-testing-amd64:
+    path: /debian-squash/releases/download/2.8.0-9-5fb1a15b/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 2.8.0-9
+    flavor: testing
+    kernel: clonezilla-debian-testing-amd64
+    arch: amd64
+  clonezilla-debian-testing-i686:
+    path: /debian-squash/releases/download/2.8.0-9-6357dd7e/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 2.8.0-9
+    flavor: testing
+    kernel: clonezilla-debian-testing-i686
+    arch: i686
+  clonezilla-ubuntu-testing-amd64:
+    path: /ubuntu-squash/releases/download/20210930-hirsute-5774fbed/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: 20210930-hirsute
+    flavor: testing
+    kernel: clonezilla-ubuntu-testing-amd64
+    arch: amd64

+ 6 - 2
roles/netbootxyz/defaults/main.yml

@@ -142,8 +142,8 @@ releases:
     mirror: mirrors.kernel.org
     name: Arch Linux
     versions:
-    - code_name: 2021.09.01
-      name: 2021.09.01
+    - code_name: 2021.10.01
+      name: 2021.10.01
   blackarch:
     enabled: true
     menu: linux
@@ -698,6 +698,10 @@ utilitiesefi:
     name: System Rescue CD
     type: ipxemenu
 utilitiespcbios32:
+  clonezilla:
+    enabled: true
+    name: Clonezilla
+    type: ipxemenu
   memtest:
     enabled: true
     name: Memtest

+ 9 - 6
roles/netbootxyz/templates/menu/clonezilla.ipxe.j2

@@ -3,20 +3,23 @@
 goto ${menu} ||
 
 :live_menu
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+iseq ${os_arch} i386 && set os_arch i686 ||
 set os Clonezilla
 menu ${os}
 item --gap ${os} Versions
 item debian ${space} ${os} Debian Based
-item ubuntu ${space} ${os} Ubuntu Based
+iseq ${os_arch} amd64 && item ubuntu ${space} ${os} Ubuntu Based ||
 choose live_version || goto live_exit
-menu ${os} ${live_version}
+menu ${os} ${live_version} - ${os_arch}
 item --gap ${os} Flavors
 goto ${live_version}
 
 :debian
 {% for key, value in endpoints.items() %}
-{% if value.os == "clonezilla" and value.version == "debian" %}
-item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }}
+{% if value.os == "clonezilla" and "debian" in key %}
+iseq ${os_arch} {{ value.arch }} && item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }} ||
 {% endif %}
 {% endfor %}
 choose path || goto live_menu
@@ -24,8 +27,8 @@ goto clonezilla-boot
 
 :ubuntu
 {% for key, value in endpoints.items() %}
-{% if value.os == "clonezilla" and value.version == "ubuntu" %}
-item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }}
+{% if value.os == "clonezilla" and "ubuntu" in key %}
+iseq ${os_arch} {{ value.arch }} && item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }} ||
 {% endif %}
 {% endfor %}
 choose path || goto live_menu

+ 1 - 0
roles/netbootxyz/templates/menu/nbxyz.ipxe.j2

@@ -14,6 +14,7 @@ item nbxyz-prod ${space} Production Release (boot.netboot.xyz)
 item nbxyz-staging ${space} Staging (staging.boot.netboot.xyz)
 item nbxyz-dev ${space} Development (dev.boot.netboot.xyz)
 choose nbxyz_version || goto nbxyz_exit
+imgfree
 goto ${nbxyz_version}
 
 :nbxyz-rolling

+ 32 - 25
script/build_release

@@ -23,38 +23,45 @@ elif [[ "${TYPE}" == "rc" ]]; then
 elif [[ "${TYPE}" == "release" ]]; then
   BOOT_VERSION=$(cat version.txt)
   BOOT_DOMAIN="${PROD_URL}/${BOOT_VERSION}"
+elif [[ "${TYPE}" == "rolling" ]]; then
+  HARD_RELEASE="2.x"
+  PROD_URL="boot.netboot.xyz"
 fi
-sed -i \
-  "/^#boot_version/c\boot_version: \"${BOOT_VERSION}\"" \
-  user_overrides.yml
-sed -i \
-  "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \
-  user_overrides.yml
 
-# Build release
-docker build -t localbuild -f ${DOCKER_FILE} .
-docker run --rm -i -v $(pwd):/buildout localbuild
+# build release files 
+if ! [[ "${TYPE}" == "rolling" ]]; then
+  sed -i \
+    "/^#boot_version/c\boot_version: \"${BOOT_VERSION}\"" \
+    user_overrides.yml
+  sed -i \
+    "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \
+    user_overrides.yml
 
-# Generate folder outputs
-mkdir -p s3out
-mkdir -p s3outver
-cp -r buildout/* s3out/
-cp buildout/version.ipxe s3outver/
-mkdir -p githubout
-mv buildout/ipxe/* githubout/
-cd buildout
-rm -Rf ipxe
-tar -czf menus.tar.gz *
-mv menus.tar.gz ../githubout
-cd ..
-if [[ "${TYPE}" == "dev" ]]; then
-  cp githubout/menus.tar.gz s3out/
+  # Build release
+  docker build -t localbuild -f ${DOCKER_FILE} .
+  docker run --rm -i -v $(pwd):/buildout localbuild
+
+  # Generate folder outputs
+  mkdir -p s3out
+  mkdir -p s3outver
+  cp -r buildout/* s3out/
+  cp buildout/version.ipxe s3outver/
+  mkdir -p githubout
+  mv buildout/ipxe/* githubout/
+  cd buildout
+  rm -Rf ipxe
+  tar -czf menus.tar.gz *
+  mv menus.tar.gz ../githubout
+  cd ..
+  if [[ "${TYPE}" == "dev" ]]; then
+    cp githubout/menus.tar.gz s3out/
+  fi
 fi
 
 # Latest style endpoints for RC and Live
-if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then
+if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rolling" ]] || [[ "${TYPE}" == "rc" ]]; then
   rm -Rf buildout/
-  if [[ "${TYPE}" == "release" ]]; then
+  if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rolling" ]]; then
     sed -i \
       -e "/^boot_version/c\boot_version: \"${HARD_RELEASE}\"" \
       -e "/^boot_domain/c\boot_domain: ${PROD_URL}" \

+ 2 - 0
script/message

@@ -9,6 +9,8 @@ elif [ "${TYPE}" == "rc-push" ]; then
   BOOT_URL="https://staging.boot.netboot.xyz/$(cat version.txt)-RC/index.html"
 elif [ "${TYPE}" == "live-push" ]; then
   BOOT_URL="https://boot.netboot.xyz/$(cat version.txt)/index.html"
+elif [ "${TYPE}" == "rolling-push" ]; then
+  BOOT_URL="https://boot.netboot.xyz/index.html"
 fi
 
 # send status to discord

+ 1 - 1
version.txt

@@ -1 +1 @@
-2.0.49
+2.0.50