name: nginx Mega Build run-name: nginx Build on: push: tags: - alpine-nginx-* workflow_dispatch: jobs: build_nginx: runs-on: [ubuntu-latest] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup latest Alpine Linux uses: jirutka/setup-alpine@v1 - name: Run script inside Alpine chroot as root run: | apk add curl bash bash-completion shell: alpine.sh --root {0} - name: Set up environment variables run: | TAG_NAME=${GITHUB_REF##*/} NGINX_TAG=${TAG_NAME#alpine-nginx-} echo "NGINX_TAG=${NGINX_TAG}" >> $GITHUB_ENV echo "NGINX_TAG=${NGINX_TAG}" shell: alpine.sh {0} - name: Run nginx Builds run: | build_sh='echo "${NGINX_TAG}" TAGS=("vanilla" "allstar" "lua" "modsecurity") OPTIONS=( "--type=nginx" "--lua --modsecurity --type=nginx --modsecurity-prefix=/usr --lua-prefix=/usr/share/lua/5.4 --luajit2-prefix=/usr --ssl=quictls" "--lua --type=nginx --preserve --lua-prefix=/usr/share/lua/5.4 --luajit2-prefix=/usr --ssl=quictls" "--modsecurity --type=nginx --preserve --modsecurity-prefix=/usr" ) RUNNING_PATH=$(pwd) echo "RUNNING PATH: ${RUNNING_PATH}" # This output where in the system is running echo "HOME PATH: ${HOME}" for i in ${!TAGS[@]}; do echo "This Task will be run using the following tag: ${NGINX_TAG}" echo "This Task will be run using the following version: ${TAGS[$i]}" echo "This Task will be run using the following options: ${OPTIONS[$i]}" curl https://raw.githubusercontent.com/minoplhy/scriptbox/main/nginx_build_script/build.sh | bash -s -- --nginx-tag=${NGINX_TAG} ${OPTIONS[$i]} # Prepare tar file paths HOMEDIRECTORY=~/nginx_scriptbox TAR_PATH="$HOMEDIRECTORY/nginx/objs" # Base Path case "${TAGS[$i]}" in "allstar") TAR_PATH="$TAR_PATH /usr/lib/libmodsecurity* /usr/lib/pkgconfig/modsecurity.* /usr/bin/luajit* /usr/include/luajit-2.1 /usr/lib/libluajit* /usr/lib/pkgconfig/luajit.* /usr/lib/lua /usr/share/lua*" ;; "lua") TAR_PATH="$TAR_PATH /usr/bin/luajit* /usr/include/luajit-2.1 /usr/lib/libluajit* /usr/lib/pkgconfig/luajit.* /usr/lib/lua /usr/share/lua*" ;; "modsecurity") TAR_PATH="$TAR_PATH /usr/lib/libmodsecurity* /usr/lib/pkgconfig/modsecurity.*" ;; esac # Create the tarball echo "pre-TARing infoiirmation:" echo "TAR path: ${TAR_PATH}" echo "TAR name: alpine-nginx-${NGINX_TAG}-${TAGS[$i]}.tar.gz" tar czvf alpine-nginx-${NGINX_TAG}-${TAGS[$i]}.tar.gz $TAR_PATH done' echo "$build_sh" > build.sh bash build.sh shell: alpine.sh --root {0} - name: Release uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: body: | "nginx Successfully build on -> ${{ env.NGINX_TAG }}" token: ${{ secrets.DEPLOYMENT_TOKEN }} files: alpine-nginx-*.tar.gz