Lint and built Portfile

This commit is contained in:
ReenigneArcher
2022-06-16 16:55:16 -04:00
parent e78ec5c2ce
commit 3663e35ecf
+179 -97
View File
@@ -340,103 +340,185 @@ jobs:
last_version: ${{ needs.check_changelog.outputs.last_version }} last_version: ${{ needs.check_changelog.outputs.last_version }}
release_body: ${{ needs.check_changelog.outputs.release_body }} release_body: ${{ needs.check_changelog.outputs.release_body }}
# build_mac_port: build_mac_port:
# name: Macports name: Macports
# runs-on: macos-11 needs: [check_changelog, build_mac]
# needs: [check_changelog, build_mac] runs-on: ${{ matrix.os }}
# strategy:
# steps: matrix:
# - name: Cache Artifacts os: [ macos-10.15, macos-11, macos-12 ]
# uses: actions/cache@v3
# with: steps:
# path: artifacts - name: Cache Artifacts
# key: ${{ runner.os }}-artifacts uses: actions/cache@v3
# with:
# - name: Setup Macports path: artifacts
# run : | key: ${{ runner.os }}-artifacts
# # update paths for macports
# echo "/opt/local/sbin" >> $GITHUB_PATH - name: Checkout ports
# echo "/opt/local/bin" >> $GITHUB_PATH uses: actions/checkout@v3
# with:
# # Set OpenSSL 1.1 as default repository: macports/macports-ports
# # rm -rf /usr/local/opt/openssl fetch-depth: 64
# # rm -rf /usr/local/bin/openssl path: ports
# # ln -sf /usr/local/Cellar/openssl@1.1/1.1.1o/bin/openssl /usr/local/bin/openssl
# # ln -sf /usr/local/Cellar/openssl@1.1/1.1.1o /usr/local/opt/openssl - name: Checkout mpbb
# uses: actions/checkout@v3
# # download and extract macports with:
# curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.7.2.tar.bz2 repository: macports/mpbb
# tar xf MacPorts-2.7.2.tar.bz2 path: mpbb
#
# # build macports - name: Bootstrap MacPorts
# cd MacPorts-2.7.2 run: |
# ./configure . ports/.github/workflows/bootstrap.sh
# make
# sudo make install - name: Setup Macports
# cd ../ run : |
# rm -rf MacPorts-2.7.2* # Add getopt, mpbb and the MacPorts paths to $PATH for the subsequent steps.
# echo "/opt/mports/bin" >> $GITHUB_PATH
# - name: Configure Macports echo "${PWD}/mpbb" >> $GITHUB_PATH
# run: | echo "/opt/local/bin" >> $GITHUB_PATH
# # update sources echo "/opt/local/sbin" >> $GITHUB_PATH
# sudo port -v selfupdate
# # copy Portfile from artifacts to ports
# # use custom sources mkdir -p ./ports/multimedia/Sunshine
# sudo chmod 777 /opt/local/etc/macports/sources.conf cp -f ./artifacts/Portfile ./ports/multimedia/Sunshine/Portfile
# echo file://$(echo ~)/ports > /opt/local/etc/macports/sources.conf
# echo rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default] >> /opt/local/etc/macports/sources.conf - name: Determine list of subports
# sudo chmod 644 /opt/local/etc/macports/sources.conf id: subportlist
# run: |
# # setup custom port set -eu
# mkdir -p ~/ports/multimedia/sunshine port=Sunshine
# subportlist=""
# # copy configured Portfile
# mv ./artifacts/Portfile ~/ports/multimedia/sunshine/ echo "Listing subports for Sunshine"
# new_subports=$(mpbb \
# # remove remaining cached artifacts --work-dir /tmp/mpbb \
# rm -r -f ./artifacts list-subports \
# mkdir artifacts --archive-site= \
# --archive-site-private= \
# # index the ports --include-deps=no \
# cd ~/ports "$port" \
# portindex | tr '\n' ' ')
# for subport in $new_subports; do
# - name: Build echo "$subport"
# run: | subportlist="$subportlist $subport"
# # build port done
# sudo port install sunshine \ echo "::set-output name=subportlist::${subportlist}"
# || cat /opt/local/var/macports/logs/_Users_runner_ports_multimedia_sunshine/Sunshine/main.log \
# && exit 1 - name: Run port lint for all subports
# run: |
# # create packages set -eu
# sudo port dmg sunshine fail=0
# sudo port pkg sunshine for subport in $subportlist; do
# echo "::group::${subport}"
# # move path=$(port file "$subport")
# mv $(port work sunshine)/Sunshine*.dmg ./artifacts/sunshine.dmg messagetype="warning"
# mv $(port work sunshine)/Sunshine*.ppkg ./artifacts/sunshine.pkg if ! messages=$(port -q lint "$subport" 2>&1); then
# messagetype="error"
# # testing only fail=1
# # ls ~/ports/multimedia/sunshine fi
# # cat ~/ports/multimedia/sunshine/Portfile if [ -n "$messages" ]; then
# # cat /opt/local/etc/macports/sources.conf echo "$messages"
# # cat ~/ports/Portindex # See https://github.com/actions/toolkit/issues/193#issuecomment-605394935
# # port search sunshine encoded_messages="port lint ${subport}:%0A"
# encoded_messages+="$(echo "${messages}" | sed -E 's/$/%0A/g' | tr -d '\n')"
# - name: Upload Artifacts echo "::${messagetype} file=${path#${PWD}/ports/},line=1,col=1::${encoded_messages}"
# uses: actions/upload-artifact@v3 fi
# with: echo "::endgroup::"
# name: sunshine-macports done
# path: artifacts/ exit "$fail"
# env:
# - name: Create Release subportlist: ${{ steps.subportlist.outputs.subportlist }}
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
# uses: SunshineStream/actions/create_release@master - name: Build subports
# with: run: |
# token: ${{ secrets.GITHUB_TOKEN }} set -eu
# next_version: ${{ needs.check_changelog.outputs.next_version }} fail=0
# last_version: ${{ needs.check_changelog.outputs.last_version }} for subport in $subportlist; do
# release_body: ${{ needs.check_changelog.outputs.release_body }} workdir="/tmp/mpbb/$subport"
mkdir -p "$workdir/logs"
touch "$workdir/logs/dependencies-progress.txt"
echo "::group::Cleaning up between ports"
sudo mpbb --work-dir "$workdir" cleanup
echo "::endgroup::"
echo "::group::Installing dependencies for ${subport}"
sudo mpbb \
--work-dir "$workdir" \
install-dependencies \
"$subport" >"$workdir/logs/install-dependencies.log" 2>&1 &
deps_pid=$!
tail -f "$workdir/logs/dependencies-progress.txt" 2>/dev/null &
tail_pid=$!
set +e
wait "$deps_pid"
deps_exit=$?
set -e
kill "$tail_pid" || true
if [ "$deps_exit" -ne 0 ]; then
echo "::endgroup::"
echo "::error::Failed to install dependencies for ${subport}"
fail=1
continue
fi
echo "::endgroup::"
echo "::group::Installing ${subport}"
set +e
sudo mpbb \
--work-dir "$workdir" \
install-port \
--source \
"$subport"
install_exit=$?
set -e
if [ "$install_exit" -ne 0 ]; then
echo "::endgroup::"
echo "::error::Failed to install ${subport}"
fail=1
continue
fi
echo "::endgroup::"
done
exit "$fail"
env:
subportlist: ${{ steps.subportlist.outputs.subportlist }}
- name: Package
run: |
# build port
# sudo port install sunshine \
# || cat /opt/local/var/macports/logs/_Users_runner_ports_multimedia_sunshine/Sunshine/main.log \
# && exit 1
# create packages
sudo port dmg sunshine
sudo port pkg sunshine
# move
mv $(port work sunshine)/Sunshine*.dmg ./artifacts/sunshine.dmg
mv $(port work sunshine)/Sunshine*.ppkg ./artifacts/sunshine.pkg
# testing only
# ls ~/ports/multimedia/sunshine
# cat ~/ports/multimedia/sunshine/Portfile
# cat /opt/local/etc/macports/sources.conf
# cat ~/ports/Portindex
# port search sunshine
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: sunshine-macports
path: artifacts/
- name: Create Release
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
uses: SunshineStream/actions/create_release@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
next_version: ${{ needs.check_changelog.outputs.next_version }}
last_version: ${{ needs.check_changelog.outputs.last_version }}
release_body: ${{ needs.check_changelog.outputs.release_body }}
build_win: build_win:
name: Windows name: Windows