summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCameron Katri <me@cameronkatri.com>2021-10-10 23:47:08 -0400
committerCameron Katri <me@cameronkatri.com>2021-10-11 01:35:32 -0400
commitb0afcddb696fabb742d862507ca74417b452875d (patch)
tree65d87bbddf646937783906b0783704073dd21e6f
parent6f8569e3fbf32942880af8a97a502fd6e7eef135 (diff)
downloadldid-2.1.5-procursus.tar.gz
ldid-2.1.5-procursus.tar.zst
ldid-2.1.5-procursus.zip
Add a workflowv2.1.5-procursus
-rw-r--r--.github/workflows/build.yml268
1 files changed, 268 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..4fcd435
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,268 @@
+name: build
+on:
+ release:
+ types:
+ - created
+
+env:
+ LIBPLIST_VERSION: 2.2.0
+ OPENSSL_VERSION: 3.0.0
+
+jobs:
+ build-linux:
+ runs-on: ubuntu-latest
+ env:
+ TOOLCHAIN: x86_64-linux-musl-cross
+ TRIPLE: x86_64-linux-musl
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: recursive
+
+ - name: cache files
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.ccache
+ ~/dep_src
+ key: build-linux-${ { env.GITHUB_SHA } }
+ restore-keys: |
+ build-linux-
+
+ - name: setup environment
+ run: |
+ export DOWNLOAD_PATH=${HOME}/dep_src
+ export DEP_PATH=${HOME}/build
+ export ROOT=${HOME}/root
+ mkdir -p ${DOWNLOAD_PATH} ${DEP_PATH} ${ROOT}
+ echo "DOWNLOAD_PATH=${DOWNLOAD_PATH}" >> $GITHUB_ENV
+ echo "DEP_PATH=${DEP_PATH}" >> $GITHUB_ENV
+ echo "ROOT=${ROOT}" >> $GITHUB_ENV
+ echo "LDID_VERSION=$(echo "$(git describe --tags --abbrev=0)")" >> $GITHUB_ENV
+
+ - name: setup toolchain
+ run: |
+ sudo apt-get install -y ccache
+ wget -q -nc -P ${DOWNLOAD_PATH} https://musl.cc/${TOOLCHAIN}.tgz
+ tar xf ${DOWNLOAD_PATH}/${TOOLCHAIN}.tgz -C ${HOME}
+ echo "${HOME}/${TOOLCHAIN}/bin" >> $GITHUB_PATH
+ echo "CC=ccache ${TRIPLE}-gcc" >> $GITHUB_ENV
+ echo "CXX=ccache ${TRIPLE}-g++" >> $GITHUB_ENV
+ echo "CFLAGS=-static -I${ROOT}/usr/include" >> $GITHUB_ENV
+ echo "LDFLAGS=-L${ROOT}/usr/lib" >> $GITHUB_ENV
+ echo "PKG_CONFIG_PATH=${ROOT}/usr/lib/pkgconfig" >> $GITHUB_ENV
+ echo "LD_LIBRARY_PATH=${ROOT}/usr/lib" >> $GITHUB_ENV
+
+ - name: build libplist
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://github.com/libimobiledevice/libplist/releases/download/${LIBPLIST_VERSION}/libplist-${LIBPLIST_VERSION}.tar.bz2
+ tar xf ${DOWNLOAD_PATH}/libplist-${LIBPLIST_VERSION}.tar.bz2 -C ${DEP_PATH}
+ cd ${DEP_PATH}/libplist-${LIBPLIST_VERSION}
+ ./configure --host=${TRIPLE} --prefix=/usr --without-cython --enable-static --disable-shared
+ make -j$(nproc)
+ make install DESTDIR="${ROOT}"
+
+ - name: build openssl
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
+ tar xf ${DOWNLOAD_PATH}/openssl-${OPENSSL_VERSION}.tar.gz -C ${DEP_PATH}
+ cd ${DEP_PATH}/openssl-${OPENSSL_VERSION}
+ ./config --prefix=/usr --libdir=/usr/lib --openssldir=/etc/ssl --static -static
+ make -j$(nproc)
+ make install_sw DESTDIR="${ROOT}"
+
+ - name: build
+ run: |
+ ${CC} ${CFLAGS} -Os -c -o lookup2.o lookup2.c
+ ${CXX} ${CFLAGS} -Os -c -o ldid.o ldid.cpp -std=c++11 -DLDID_VERSION=\"${LDID_VERSION}\"
+ ${CXX} -Os -std=c++11 ldid.o lookup2.o ${ROOT}/usr/lib/libplist-2.0.a ${ROOT}/usr/lib/libcrypto.a -o ldid
+ ${TRIPLE}-strip ldid
+
+ - uses: actions/upload-artifact@v1
+ with:
+ name: ldid_linux
+ path: ldid
+
+ build-macos-x86_64:
+ runs-on: macos-11
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: recursive
+
+ - name: ccache cache files
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.ccache
+ ~/dep_src
+ key: build-macos-x86_64-${ { env.GITHUB_SHA } }
+ restore-keys: |
+ build-macos-x86_64-
+
+ - name: setup environment
+ run: |
+ export DOWNLOAD_PATH=${HOME}/dep_src
+ export DEP_PATH=${HOME}/build
+ export ROOT=${HOME}/root
+ mkdir -p ${DOWNLOAD_PATH} ${DEP_PATH} ${ROOT}
+ echo "DOWNLOAD_PATH=${DOWNLOAD_PATH}" >> $GITHUB_ENV
+ echo "DEP_PATH=${DEP_PATH}" >> $GITHUB_ENV
+ echo "ROOT=${ROOT}" >> $GITHUB_ENV
+ echo "LDID_VERSION=$(echo "$(git describe --tags --abbrev=0)")" >> $GITHUB_ENV
+
+ - name: setup toolchain
+ run: |
+ brew install ccache libtool autoconf automake
+ echo "CC=ccache clang -arch x86_64 -mmacosx-version-min=10.13" >> $GITHUB_ENV
+ echo "CXX=ccache clang++ -arch x86_64 -mmacosx-version-min=10.13" >> $GITHUB_ENV
+ echo "CPPFLAGS=-I${ROOT}/usr/include" >> $GITHUB_ENV
+ echo "LDFLAGS=-L${ROOT}/usr/lib" >> $GITHUB_ENV
+ echo "PKG_CONFIG_PATH=${ROOT}/usr/lib/pkgconfig" >> $GITHUB_ENV
+ echo "LD_LIBRARY_PATH=${ROOT}/usr/lib" >> $GITHUB_ENV
+
+ - name: build libplist
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://github.com/libimobiledevice/libplist/releases/download/${LIBPLIST_VERSION}/libplist-${LIBPLIST_VERSION}.tar.bz2
+ tar xf ${DOWNLOAD_PATH}/libplist-${LIBPLIST_VERSION}.tar.bz2 -C ${DEP_PATH}
+ cd ${DEP_PATH}/libplist-${LIBPLIST_VERSION}
+ ./configure --prefix=/usr --without-cython --enable-static --disable-shared --host=x86_64-apple-darwin
+ make -j$(sysctl -n hw.ncpu)
+ make install DESTDIR="${ROOT}"
+
+ - name: build openssl
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
+ tar xf ${DOWNLOAD_PATH}/openssl-${OPENSSL_VERSION}.tar.gz -C ${DEP_PATH}
+ cd ${DEP_PATH}/openssl-${OPENSSL_VERSION}
+ ./config --prefix=/usr --libdir=/usr/lib --openssldir=/etc/ssl no-shared darwin64-x86_64
+ make -j$(sysctl -n hw.ncpu)
+ make install_sw DESTDIR="${ROOT}"
+
+ - name: build
+ run: |
+ ${CC} ${CPPFLAGS} ${CFLAGS} -flto=thin -Os -c -o lookup2.o lookup2.c
+ ${CXX} ${CPPFLAGS} ${CFLAGS} -flto=thin -Os -c -o ldid.o ldid.cpp -std=c++11 -DLDID_VERSION=\"${LDID_VERSION}\"
+ ${CXX} ${ROOT}/usr/lib/libplist-2.0.a ${ROOT}/usr/lib/libcrypto.a -flto=thin -Os -std=c++11 ldid.o lookup2.o -o ldid
+ strip ldid
+ - uses: actions/upload-artifact@v1
+ with:
+ name: ldid_macos_x86_64
+ path: ldid
+
+ build-macos-arm64:
+ runs-on: macos-11
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: recursive
+
+ - name: ccache cache files
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.ccache
+ ~/dep_src
+ key: build-macos-arm64-${ { env.GITHUB_SHA } }
+ restore-keys: |
+ build-macos-arm64-
+
+ - name: setup environment
+ run: |
+ export DOWNLOAD_PATH=${HOME}/dep_src
+ export DEP_PATH=${HOME}/build
+ export ROOT=${HOME}/root
+ mkdir -p ${DOWNLOAD_PATH} ${DEP_PATH} ${ROOT}
+ echo "DOWNLOAD_PATH=${DOWNLOAD_PATH}" >> $GITHUB_ENV
+ echo "DEP_PATH=${DEP_PATH}" >> $GITHUB_ENV
+ echo "ROOT=${ROOT}" >> $GITHUB_ENV
+ echo "LDID_VERSION=$(echo "$(git describe --tags --abbrev=0)")" >> $GITHUB_ENV
+
+ - name: setup toolchain
+ run: |
+ brew install ccache libtool autoconf automake
+ echo "CC=ccache clang -arch arm64 -mmacosx-version-min=11.0" >> $GITHUB_ENV
+ echo "CXX=ccache clang++ -arch arm64 -mmacosx-version-min=11.0" >> $GITHUB_ENV
+ echo "CPPFLAGS=-I${ROOT}/usr/include" >> $GITHUB_ENV
+ echo "LDFLAGS=-L${ROOT}/usr/lib" >> $GITHUB_ENV
+ echo "PKG_CONFIG_PATH=${ROOT}/usr/lib/pkgconfig" >> $GITHUB_ENV
+ echo "LD_LIBRARY_PATH=${ROOT}/usr/lib" >> $GITHUB_ENV
+
+ - name: build libplist
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://github.com/libimobiledevice/libplist/releases/download/${LIBPLIST_VERSION}/libplist-${LIBPLIST_VERSION}.tar.bz2
+ tar xf ${DOWNLOAD_PATH}/libplist-${LIBPLIST_VERSION}.tar.bz2 -C ${DEP_PATH}
+ cd ${DEP_PATH}/libplist-${LIBPLIST_VERSION}
+ ./configure --prefix=/usr --without-cython --enable-static --disable-shared --host=aarch64-apple-darwin
+ make -j$(sysctl -n hw.ncpu)
+ make install DESTDIR="${ROOT}"
+
+ - name: build openssl
+ run: |
+ wget -q -nc -P ${DOWNLOAD_PATH} https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
+ tar xf ${DOWNLOAD_PATH}/openssl-${OPENSSL_VERSION}.tar.gz -C ${DEP_PATH}
+ cd ${DEP_PATH}/openssl-${OPENSSL_VERSION}
+ ./config --prefix=/usr --libdir=/usr/lib --openssldir=/etc/ssl no-shared darwin64-arm64
+ make -j$(sysctl -n hw.ncpu)
+ make install_sw DESTDIR="${ROOT}"
+
+ - name: build
+ run: |
+ ${CC} ${CPPFLAGS} ${CFLAGS} -flto=thin -Os -c -o lookup2.o lookup2.c
+ ${CXX} ${CPPFLAGS} ${CFLAGS} -flto=thin -Os -c -o ldid.o ldid.cpp -std=c++11 -DLDID_VERSION=\"${LDID_VERSION}\"
+ ${CXX} ${ROOT}/usr/lib/libplist-2.0.a ${ROOT}/usr/lib/libcrypto.a -flto=thin -Os -std=c++11 ldid.o lookup2.o -o ldid
+ strip ldid
+ - uses: actions/upload-artifact@v1
+ with:
+ name: ldid_macos_arm64
+ path: ldid
+
+ releases:
+ runs-on: ubuntu-latest
+ needs: [build-linux, build-macos-x86_64, build-macos-arm64]
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Download linux artifact
+ uses: actions/download-artifact@v1
+ with:
+ name: ldid_linux
+ path: ldid_linux
+ - name: Download macos-x86_64 artifact
+ uses: actions/download-artifact@v1
+ with:
+ name: ldid_macos_x86_64
+ path: ldid_macos_x86_64
+ - name: Download macos-arm64 artifact
+ uses: actions/download-artifact@v1
+ with:
+ name: ldid_macos_arm64
+ path: ldid_macos_arm64
+
+ - name: Upload Release Asset linux
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./ldid_linux/ldid
+ asset_name: ldid_linux
+ asset_content_type: application/octet-stream
+ - name: Upload Release Asset macos x86_64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./ldid_macos_x86_64/ldid
+ asset_name: ldid_macos_x86_64
+ asset_content_type: application/octet-stream
+ - name: Upload Release Asset macos arm64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./ldid_macos_arm64/ldid
+ asset_name: ldid_macos_arm64
+ asset_content_type: application/octet-stream