--- name: CI # yamllint disable-line rule:truthy on: [push, workflow_dispatch] jobs: Cinnamon: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - name: Free up disk space for the CI uses: AdityaGarg8/remove-unwanted-software@v5 with: remove-android: 'true' remove-dotnet: 'true' remove-haskell: 'true' remove-swapfile: 'true' remove-codeql: 'true' - name: Build run: sudo ./build.sh cinnamon - name: print sha256sum run: | cat output/sha256* SHA256=$(cat output/sha256* | cut -d " " -f 1) echo "sha256cinnamon=${SHA256}" >> $GITHUB_ENV - name: Generate Tag id: tag run: | VER=$(egrep ^KERNEL_VERSION build.sh|cut -d= -f2) MINTVER=$(egrep ^MINT_VERSION build.sh|cut -d= -f2) REL=$(grep "PKGREL=\d*" build.sh | cut -d = -f2) echo Version is $VER echo "kver=${VER}" >> $GITHUB_ENV echo "mintver=${MINTVER}" >> $GITHUB_ENV echo "isotag=${VER}-${REL}" >> $GITHUB_ENV - name: Upload iso artifact uses: actions/upload-artifact@v7 with: name: ISO-Cinnamon path: ${{ github.workspace }}/linuxmint-${{ env.mintver }}-cinnamon-${{ env.kver }}-t2-noble archive: false - name: Instructions for putting it back together run: | cat << EOF Download all the artifacts, and put them in a folder without other files. Then run:" unzip "*.z??.zip" cat livecd-${{ env.isotag }}-t2.z?? > cd.zip echo unzip cd.zip EOF - name: Get the ISO script run: | sudo sed -i 's/GITHUBRELEASE/v${{ env.isotag }}/g' ${{ github.workspace }}/.github/workflows/iso.sh sudo cp ${{ github.workspace }}/.github/workflows/iso.sh ${{ github.workspace }}/output/iso.sh - name: Release if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@v2 with: #files: ${{ github.workspace }}/ISO/*.tar.gz #files: ${{ github.workspace }}/ISO/*.iso files: ${{ github.workspace }}/output/* tag_name: v${{ env.isotag }} body_path: ${{ github.workspace }}/.github/workflows/instructions.txt draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Mate: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - name: Free up disk space for the CI uses: AdityaGarg8/remove-unwanted-software@v5 with: remove-android: 'true' remove-dotnet: 'true' remove-haskell: 'true' remove-swapfile: 'true' remove-codeql: 'true' - name: Build run: sudo ./build.sh mate - name: print sha256sum run: | cat output/sha256* SHA256=$(cat output/sha256* | cut -d " " -f 1) echo "sha256mate=${SHA256}" >> $GITHUB_ENV - name: Generate Tag id: tag run: | VER=$(egrep ^KERNEL_VERSION build.sh|cut -d= -f2) MINTVER=$(egrep ^MINT_VERSION build.sh|cut -d= -f2) REL=$(grep "PKGREL=\d*" build.sh | cut -d = -f2) echo Version is $VER echo "kver=${VER}" >> $GITHUB_ENV echo "mintver=${MINTVER}" >> $GITHUB_ENV echo "isotag=${VER}-${REL}" >> $GITHUB_ENV - name: Upload iso artifact uses: actions/upload-artifact@v7 with: name: ISO-Mate path: ${{ github.workspace }}/linuxmint-${{ env.mintver }}-mate-${{ env.kver }}-t2-noble archive: false - name: Instructions for putting it back together run: | cat << EOF Download all the artifacts, and put them in a folder without other files. Then run:" unzip "*.z??.zip" cat livecd-${{ env.isotag }}-t2.z?? > cd.zip echo unzip cd.zip EOF - name: Release if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@v2 with: #files: ${{ github.workspace }}/ISO/*.tar.gz #files: ${{ github.workspace }}/ISO/*.iso files: ${{ github.workspace }}/output/* tag_name: v${{ env.isotag }} body_path: ${{ github.workspace }}/.github/workflows/instructions.txt draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} XFCE: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - name: Free up disk space for the CI uses: AdityaGarg8/remove-unwanted-software@v5 with: remove-android: 'true' remove-dotnet: 'true' remove-haskell: 'true' remove-swapfile: 'true' remove-codeql: 'true' - name: Build run: sudo ./build.sh xfce - name: print sha256sum run: | cat output/sha256* SHA256=$(cat output/sha256* | cut -d " " -f 1) echo "sha256xfce=${SHA256}" >> $GITHUB_ENV - name: Generate Tag id: tag run: | VER=$(egrep ^KERNEL_VERSION build.sh|cut -d= -f2) MINTVER=$(egrep ^MINT_VERSION build.sh|cut -d= -f2) REL=$(grep "PKGREL=\d*" build.sh | cut -d = -f2) echo Version is $VER echo "kver=${VER}" >> $GITHUB_ENV echo "mintver=${MINTVER}" >> $GITHUB_ENV echo "isotag=${VER}-${REL}" >> $GITHUB_ENV - name: Upload iso artifact uses: actions/upload-artifact@v7 with: name: ISO-XFCE path: ${{ github.workspace }}/linuxmint-${{ env.mintver }}-xfce-${{ env.kver }}-t2-noble.iso archive: false - name: Instructions for putting it back together run: | cat << EOF Download all the artifacts, and put them in a folder without other files. Then run:" unzip "*.z??.zip" cat livecd-${{ env.isotag }}-t2.z?? > cd.zip echo unzip cd.zip EOF - name: Release if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@v2 with: #files: ${{ github.workspace }}/ISO/*.tar.gz #files: ${{ github.workspace }}/ISO/*.iso files: ${{ github.workspace }}/output/* tag_name: v${{ env.isotag }} body_path: ${{ github.workspace }}/.github/workflows/instructions.txt draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Publish: needs: [Cinnamon, XFCE, Mate] runs-on: ubuntu-latest steps: - name: 'Checkout Repo' uses: actions/checkout@v6 - name: Generate Variables run: | VER=$(egrep ^KERNEL_VERSION build.sh|cut -d= -f2) MINTVER=$(egrep ^MINT_VERSION build.sh|cut -d= -f2) REL=$(grep "PKGREL=\d*" build.sh | cut -d = -f2) echo Version is $VER echo "kver=${VER}" >> $GITHUB_ENV echo "mintver=${MINTVER}" >> $GITHUB_ENV echo "isotag=${VER}-${REL}" >> $GITHUB_ENV - name: Get sha256sum run: | for i in cinnamon mate xfce do wget https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/sha256-${i} SHA256=$(cat ./sha256-${i} | cut -d " " -f 1) echo "sha256${i}=${SHA256}" >> $GITHUB_ENV done - name: Update the json if: github.ref == 'refs/heads/main' id: publish run: | git clone https://github.com/t2linux/wiki.git cd wiki/docs/tools cat << EOF > update.py import json # Define the new links new_link_cinnamon_1 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-cinnamon-${{ env.kver }}-t2-noble.iso.00" new_link_cinnamon_2 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-cinnamon-${{ env.kver }}-t2-noble.iso.01" new_link_mate_1 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-mate-${{ env.kver }}-t2-noble.iso.00" new_link_mate_2 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-mate-${{ env.kver }}-t2-noble.iso.01" new_link_xfce_1 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-xfce-${{ env.kver }}-t2-noble.iso.00" new_link_xfce_2 = "https://github.com/t2linux/T2-Mint/releases/download/v${{ env.isotag }}/linuxmint-${{ env.mintver }}-xfce-${{ env.kver }}-t2-noble.iso.01" # Load the JSON file with open('distro-metadata.json', 'r') as file: data = json.load(file) # Function to update the links def update_links(distros, name, new_links, sha256): for distro in distros: if distro['name'] == name: distro['iso'] = new_links distro['sha256'] = sha256 # Update the links update_links(data['all'], "Linux Mint - Cinnamon", [new_link_cinnamon_1, new_link_cinnamon_2], "${{ env.sha256cinnamon }}") update_links(data['all'], "Linux Mint - Mate", [new_link_mate_1, new_link_mate_2], "${{ env.sha256mate }}") update_links(data['all'], "Linux Mint - XFCE", [new_link_xfce_1, new_link_xfce_2], "${{ env.sha256xfce }}") # Save the updated JSON back to the file with open('distro-metadata.json', 'w') as file: json.dump(data, file, indent=2) print("Links updated successfully.") EOF python3 update.py rm update.py cd - - name: Push changes to apt repo if: github.ref == 'refs/heads/main' uses: cpina/github-action-push-to-another-repository@main env: API_TOKEN_GITHUB: ${{ secrets.PAT }} with: source-directory: 'wiki' destination-github-username: 't2linux' destination-repository-name: 'wiki' user-email: github-actions[bot]@users.noreply.github.com user-name: github-actions[bot] target-branch: master commit-message: Distro metadata - Update Linux Mint ${{ env.mintver }} to v${{ env.isotag }}