0
0
mirror of https://github.com/sp-tarkov/build.git synced 2025-02-12 15:10:45 -05:00

Docker Node LTS Update & Mega Dep Removal

This commit is contained in:
Refringe 2025-01-03 17:24:23 -05:00
parent b1604340a8
commit 7997177137
Signed by: Refringe
SSH Key Fingerprint: SHA256:t865XsQpfTeqPRBMN2G6+N8wlDjkgUCZF3WGW6O9N/k
3 changed files with 12 additions and 78 deletions

View File

@ -20,7 +20,7 @@ jobs:
prepare: prepare:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: refringe/spt-build-node:1.0.9 image: refringe/spt-build-node:1.1.0
outputs: outputs:
proceed: ${{ steps.check-existence.outputs.proceed }} proceed: ${{ steps.check-existence.outputs.proceed }}
is_nightly: ${{ steps.determine-context.outputs.is_nightly }} is_nightly: ${{ steps.determine-context.outputs.is_nightly }}
@ -369,7 +369,7 @@ jobs:
needs: [prepare, build-server, build-modules, build-launcher] needs: [prepare, build-server, build-modules, build-launcher]
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: refringe/spt-build-node:1.0.9 image: refringe/spt-build-node:1.1.0
steps: steps:
- name: Clean Directory - name: Clean Directory
shell: bash shell: bash
@ -524,58 +524,6 @@ jobs:
echo "link_https=${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ steps.generate-filename.outputs.build_name }}" >> $GITHUB_OUTPUT echo "link_https=${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ steps.generate-filename.outputs.build_name }}" >> $GITHUB_OUTPUT
echo "HTTPS Upload completed: ${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ steps.generate-filename.outputs.build_name }}" echo "HTTPS Upload completed: ${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ steps.generate-filename.outputs.build_name }}"
- name: Upload Release to Mega
id: upload-mega
shell: bash
run: |
mega-https on
mega-login "${{ secrets.MEGA_EMAIL }}" "${{ secrets.MEGA_PASSWORD }}"
mega-exec psa --discard
mega-put -c "${{ steps.generate-filename.outputs.build_name }}" "/spt-release/${{ steps.generate-filename.outputs.build_name }}"
# Generate link and save it.
EXPORT_OUTPUT=$(mega-export -a "/spt-release/${{ steps.generate-filename.outputs.build_name }}" -f)
LINK_MEGA=$(echo "$EXPORT_OUTPUT" | grep -o 'https://mega.nz/file/[A-Za-z0-9#_\-]*')
echo "link_mega=${LINK_MEGA}" >> $GITHUB_OUTPUT
echo "Mega Upload completed: $LINK_MEGA"
mega-logout
- name: Clean Old Mega Releases
shell: bash
run: |
mega-https on
mega-login "${{ secrets.MEGA_EMAIL }}" "${{ secrets.MEGA_PASSWORD }}"
mega-exec psa --discard
echo "Finding old, non-release type files..."
mega-find /spt-release \
--type=f \
--pattern='SPT-(NIGHTLY|DEBUG|BLEEDING|BLEEDINGMODS).*\.7z' \
--use-pcre \
--mtime=+14d > old_files.txt
# Check if any old files were found
if [ -s old_files.txt ]; then
echo "Old files found:"
cat old_files.txt
# Delete each file listed in old_files.txt
while read -r filepath; do
echo "Deleting old file: $filepath"
mega-rm "$filepath"
done < old_files.txt
else
echo "No old files found."
fi
# Remove old file versions to save space.
mega-deleteversions -f /spt-release/*
mega-logout
- name: Post Build Info to Discord - name: Post Build Info to Discord
env: env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
@ -584,33 +532,32 @@ jobs:
BUILD_NAME: ${{ steps.generate-filename.outputs.build_name }} BUILD_NAME: ${{ steps.generate-filename.outputs.build_name }}
FILE_SIZE_MB: ${{ steps.compress-release.outputs.file_size_mb }} FILE_SIZE_MB: ${{ steps.compress-release.outputs.file_size_mb }}
FILE_HASH: ${{ steps.compress-release.outputs.file_hash }} FILE_HASH: ${{ steps.compress-release.outputs.file_hash }}
LINK_MEGA: ${{ steps.upload-mega.outputs.link_mega }}
LINK_HTTPS: ${{ steps.upload-https-7z.outputs.link_https }} LINK_HTTPS: ${{ steps.upload-https-7z.outputs.link_https }}
IS_NIGHTLY: ${{ needs.prepare.outputs.is_nightly }} IS_NIGHTLY: ${{ needs.prepare.outputs.is_nightly }}
shell: bash shell: bash
run: | run: |
UPPER_BUILD_TYPE=$(echo "$BUILD_TYPE" | tr '[:lower:]' '[:upper:]') UPPER_BUILD_TYPE=$(echo "$BUILD_TYPE" | tr '[:lower:]' '[:upper:]')
FOOTER_MESSAGES=("You look great today!" "Don't ban me, Phantom!" "Powered by coffee" "Life's too short to remove USB safely" "Did you remember to hydrate today?" "Have you tried turning it off and on again?" "There's no place like 127.0.0.1" "In Chomp we trust" "Beep boop, I'm a bot" "Keep calm and commit your code" "This isn't a bug, it's an undocumented feature." "May the source be with you" "Go to bed, Terk" "Please direct all support requests to Drakia" "Meaw" "Chomp approves of this message" "Chomp is life, Chomp is love" "Drakia denies all involvement" "Drakia left this note here just to confuse you" "Katalyst is the reason we cant have nice things" "Katalyst voted against this message" "Powered by caffeine, chaos, and Chomp" "RaiRai says hi-hi" "RaiRai wants to remind you that sarcasm is a skill" "Refringe just wobbled" "Refringe might be watching--Or coding--Probably both" "Refringe rewrote this embed thirty times" "Refringe, professional button-pusher extraordinaire" "Sarix would like you to reconsider your choices" "Stella is currently judging your grammar" "Stella just gave this embed a 6/10" "Waffle has entered the chat, and now its weird" "Waffle is too busy stacking layers of chaos" "Waffle would like to speak to the manager of logic") FOOTER_MESSAGES=("You look great today!" "Powered by coffee" "Life's too short to remove USB safely" "Did you remember to hydrate today?" "Have you tried turning it off and on again?" "There's no place like 127.0.0.1" "In Chomp we trust" "Beep boop, I'm a bot" "Keep calm and commit your code" "This isn't a bug, it's an undocumented feature." "May the source be with you" "Go to bed, Terk" "Please direct all support requests to Drakia" "Meaw" "Chomp approves of this message" "Chomp is life, Chomp is love" "Drakia denies all involvement" "Drakia left this note here just to confuse you" "Cabbit is the reason we cant have nice things" "Cabbit voted against this message" "Powered by caffeine, chaos, and Chomp" "RaiRai says hi-hi" "RaiRai wants to remind you that sarcasm is a skill" "Refringe just wobbled" "Refringe is watching" "Refringe rewrote this embed thirty times" "Refringe, professional button-pusher extraordinaire" "Sarix would like you to reconsider your choices" "Stella is currently judging your grammar" "Stella just gave this embed a 6/10" "Waffle has entered the chat, and now its weird" "Waffle is too busy stacking layers of chaos" "Waffle would like to speak to the manager of logic")
FOOTER_MESSAGE="${FOOTER_MESSAGES[$RANDOM % ${#FOOTER_MESSAGES[@]}]}" FOOTER_MESSAGE="${FOOTER_MESSAGES[$RANDOM % ${#FOOTER_MESSAGES[@]}]}"
TIMESTAMP=$(date --iso-8601=seconds) TIMESTAMP=$(date --iso-8601=seconds)
MODS="" MODS=""
if [[ "${{ needs.prepare.outputs.is_nightly }}" == "true" ]]; then if [[ "${{ needs.prepare.outputs.is_nightly }}" == "true" ]]; then
EMBED_COLOR=16705372 EMBED_COLOR=16705372
EMBED_DESCRIPTION='A new nightly build is available. These are untested and considered unstable. Absolutely no support is provided. **If you ask for help you will be banned from the #dev-builds channel without explanation.** 7-Zip is *required* to extract the release.' EMBED_DESCRIPTION='A new nightly build is available. These are untested and considered unstable. Absolutely no support is provided. **If you ask for help you will be banned from the #dev-builds channel without explanation.** 7-Zip is *required* to extract the release. The download link is temporary.'
MODS='enabled' MODS='enabled'
else else
if [ "$BUILD_TYPE" == "bleeding" ]; then if [ "$BUILD_TYPE" == "bleeding" ]; then
EMBED_COLOR=15548997 EMBED_COLOR=15548997
EMBED_DESCRIPTION='A new bleeding edge build is available. These are strictly for testing issues *and not for general gameplay*. 7-Zip is *required* to extract the release.' EMBED_DESCRIPTION='A new bleeding edge build is available. These are strictly for testing issues *and not for general gameplay*. 7-Zip is *required* to extract the release. The download link is temporary.'
MODS='disabled' MODS='disabled'
elif [ "$BUILD_TYPE" == "bleedingmods" ]; then elif [ "$BUILD_TYPE" == "bleedingmods" ]; then
EMBED_COLOR=15548997 EMBED_COLOR=15548997
EMBED_DESCRIPTION='A new bleeding edge build is available. These are strictly for testing issues *and not for general gameplay*. 7-Zip is *required* to extract the release.' EMBED_DESCRIPTION='A new bleeding edge build is available. These are strictly for testing issues *and not for general gameplay*. 7-Zip is *required* to extract the release. The download link is temporary.'
MODS='enabled' MODS='enabled'
elif [ "$BUILD_TYPE" == "debug" ]; then elif [ "$BUILD_TYPE" == "debug" ]; then
EMBED_COLOR=2123412 EMBED_COLOR=2123412
EMBED_DESCRIPTION=$'A new debug build is available. These have extra-verbose logging enabled *for testing*. 7-Zip is *required* to extract the release.' EMBED_DESCRIPTION=$'A new debug build is available. These have extra-verbose logging enabled *for testing*. 7-Zip is *required* to extract the release. The download link is temporary.'
MODS='enabled' MODS='enabled'
else else
EMBED_COLOR=5763719 EMBED_COLOR=5763719
@ -625,8 +572,7 @@ jobs:
{"name": "Mods", "value": "'"$MODS"'", "inline": true}, {"name": "Mods", "value": "'"$MODS"'", "inline": true},
{"name": "File Size", "value": "'"$FILE_SIZE_MB"'", "inline": true}, {"name": "File Size", "value": "'"$FILE_SIZE_MB"'", "inline": true},
{"name": "File Hash", "value": "'"$FILE_HASH"'"}, {"name": "File Hash", "value": "'"$FILE_HASH"'"},
{"name": "Download", "value": "'"$LINK_MEGA"'"}, {"name": "Download", "value": "'"$LINK_HTTPS"'"}
{"name": "Mirror", "value": "'"$LINK_HTTPS"'"}
]' ]'
payload=$(jq -n \ payload=$(jq -n \

View File

@ -1,8 +1,7 @@
# Use the Node v20.11.1, Debian 12 base image # Use the Node v22.12.0, Debian 12 base image
FROM node:20.11.1-bookworm FROM node:22.12.0-bookworm
# Install necessary tools and dependencies # Install necessary tools and dependencies
# - wget (for downloading MegaCMD)
# - git (duh) # - git (duh)
# - git-lfs (duh) # - git-lfs (duh)
# - zstd (caching action dependancy) # - zstd (caching action dependancy)
@ -14,15 +13,4 @@ FROM node:20.11.1-bookworm
# - vim-common (for xxd command, for file hash process) # - vim-common (for xxd command, for file hash process)
# - rclone (for R2 uploads) # - rclone (for R2 uploads)
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y wget git git-lfs zstd tree jq p7zip-full sshpass python3 python3-pip python3-venv vim-common rclone apt-get install -y git git-lfs zstd tree jq p7zip-full sshpass vim-common rclone
# MegaCMD (for uploading to Mega.nz)
# - libc-ares2 (MegaCMD dependancy)
# - libmediainfo0v5 (MegaCMD dependancy)
# - libpcrecpp0v5 (MegaCMD dependancy)
# - libzen0v5 (MegaCMD dependancy)
RUN apt-get install -y libc-ares2 libmediainfo0v5 libpcrecpp0v5 libzen0v5 && \
wget https://mega.nz/linux/repo/Debian_12/amd64/megacmd-Debian_12_amd64.deb && \
dpkg -i megacmd-Debian_12_amd64.deb && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

View File

@ -65,7 +65,7 @@ Prior to the assembly and distribution of Docker images, it is crucial to increm
``` ```
# Command to build and push the spt-build-node Docker image to Docker Hub # Command to build and push the spt-build-node Docker image to Docker Hub
docker build -t refringe/spt-build-node:1.0.10 -t refringe/spt-build-node:latest -f Dockerfile.node . docker build -t refringe/spt-build-node:1.1.1 -t refringe/spt-build-node:latest -f Dockerfile.node .
docker push refringe/spt-build-node --all-tags docker push refringe/spt-build-node --all-tags
# Command to build and push the spt-build-dotnet Docker image to Docker Hub # Command to build and push the spt-build-dotnet Docker image to Docker Hub