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

Combines the assemble and publish workflows

The assemble and publish workflows worked with the same release files and just had different purposes. Normally I'd like to keep them separated, but the process of creating an artifact from one workflow to the next with a folder this large takes a minute or two, and frankly, I'd rather not wait.

This commit combines them into one larger assemble-and-publish workflow.
This commit is contained in:
Refringe 2024-03-28 19:06:01 -04:00
parent edc6c35537
commit 5fce20ef70
Signed by: Refringe
GPG Key ID: 7715B85B4A6306ED

View File

@ -382,14 +382,11 @@ jobs:
retention-days: 1 retention-days: 1
overwrite: true overwrite: true
assemble-release: assemble-and-publish:
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.7 image: refringe/spt-build-node:1.0.7
outputs:
base_name: ${{ steps.generate-filename.outputs.base_name }}
build_name: ${{ steps.generate-filename.outputs.build_name }}
steps: steps:
- name: Clean Directory - name: Clean Directory
run: | run: |
@ -470,48 +467,27 @@ jobs:
echo "::set-output name=build_name::${BASE_NAME}.7z" echo "::set-output name=build_name::${BASE_NAME}.7z"
shell: bash shell: bash
- name: Artifact Release
uses: actions/upload-artifact@v3
with:
name: release-artifact
path: /workspace/SPT-AKI/Build/release
compression-level: 0
retention-days: 1
overwrite: true
publish-release:
needs: [prepare, assemble-release, build-server]
runs-on: ubuntu-latest
container:
image: refringe/spt-build-node:1.0.7
steps:
- name: Download Release Artifact
uses: actions/download-artifact@v3
with:
name: release-artifact
path: /workspace/SPT-AKI/Build/release
- name: Compress Release - name: Compress Release
run: | run: |
cd /workspace/SPT-AKI/Build/release cd /workspace/SPT-AKI/Build/release
7z a -mx=9 -m0=lzma2 "../${{ needs.assemble-release.outputs.build_name }}" ./* 7z a -mx=9 -m0=lzma2 "../${{ steps.generate-filename.outputs.build_name }}" ./*
echo "Release compressed as ${{ needs.assemble-release.outputs.build_name }}." echo "Release compressed as ${{ steps.generate-filename.outputs.build_name }}."
shell: bash shell: bash
- name: Upload Release to HTTPS Source - name: Upload Release to HTTPS Source
id: upload-https-7z id: upload-https-7z
run: | run: |
cd /workspace/SPT-AKI/Build/ cd /workspace/SPT-AKI/Build/
sshpass -p "${{ secrets.SFTP_PASSWORD }}" scp -v -o "Port=${{ secrets.SFTP_PORT }}" -o "ConnectTimeout=20" -o "StrictHostKeyChecking=no" "/workspace/SPT-AKI/Build/${{ needs.assemble-release.outputs.build_name }}" ${{ secrets.SFTP_USERNAME }}@${{ secrets.SFTP_HOST }}:/public/builds sshpass -p "${{ secrets.SFTP_PASSWORD }}" scp -v -o "Port=${{ secrets.SFTP_PORT }}" -o "ConnectTimeout=20" -o "StrictHostKeyChecking=no" "/workspace/SPT-AKI/Build/${{ steps.generate-filename.outputs.build_name }}" ${{ secrets.SFTP_USERNAME }}@${{ secrets.SFTP_HOST }}:/public/builds
echo "::set-output name=link_https::${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ needs.assemble-release.outputs.build_name }}" echo "::set-output name=link_https::${{ secrets.SFTP_MIRROR_LINK }}/builds/${{ steps.generate-filename.outputs.build_name }}"
shell: bash shell: bash
- name: Create Torrent File - name: Create Torrent File
if: needs.prepare.outputs.build_type == 'release' if: needs.prepare.outputs.build_type == 'release'
id: torrent_create id: torrent_create
run: | run: |
BASE_NAME="${{ needs.assemble-release.outputs.base_name }}" BASE_NAME="${{ steps.generate-filename.outputs.base_name }}"
BUILD_NAME="${{ needs.assemble-release.outputs.build_name }}" BUILD_NAME="${{ steps.generate-filename.outputs.build_name }}"
TORRENT_NAME="${BASE_NAME}.torrent" TORRENT_NAME="${BASE_NAME}.torrent"
TORF_OUTPUT=$(/opt/venv/bin/torf --yes --out "/workspace/SPT-AKI/Build/${TORRENT_NAME}" \ TORF_OUTPUT=$(/opt/venv/bin/torf --yes --out "/workspace/SPT-AKI/Build/${TORRENT_NAME}" \
--webseed "${{ steps.upload-https-7z.outputs.link_https }}" \ --webseed "${{ steps.upload-https-7z.outputs.link_https }}" \
@ -519,7 +495,7 @@ jobs:
--comment "Official ${BASE_NAME} release, built by the team at sp-tarkov.com. Have fun!" \ --comment "Official ${BASE_NAME} release, built by the team at sp-tarkov.com. Have fun!" \
--creator "sp-tarkov.com" \ --creator "sp-tarkov.com" \
--verbose \ --verbose \
"/workspace/SPT-AKI/Build/${{ needs.assemble-release.outputs.build_name }}") "/workspace/SPT-AKI/Build/${{ steps.generate-filename.outputs.build_name }}")
MAGNET_LINK=$(echo "${TORF_OUTPUT}" | grep -oP 'Magnet\t\K.*') MAGNET_LINK=$(echo "${TORF_OUTPUT}" | grep -oP 'Magnet\t\K.*')
echo "::set-output name=link_magnet::${MAGNET_LINK}" echo "::set-output name=link_magnet::${MAGNET_LINK}"
echo "::set-output name=torrent_name::${TORRENT_NAME}" echo "::set-output name=torrent_name::${TORRENT_NAME}"
@ -581,10 +557,10 @@ jobs:
mega-https on mega-https on
mega-login "${{ secrets.MEGA_EMAIL }}" "${{ secrets.MEGA_PASSWORD }}" mega-login "${{ secrets.MEGA_EMAIL }}" "${{ secrets.MEGA_PASSWORD }}"
mega-put -c "/workspace/SPT-AKI/Build/${{ needs.assemble-release.outputs.build_name }}" "/spt-release/${{ needs.assemble-release.outputs.build_name }}" mega-put -c "/workspace/SPT-AKI/Build/${{ steps.generate-filename.outputs.build_name }}" "/spt-release/${{ steps.generate-filename.outputs.build_name }}"
# Generate link and save it. # Generate link and save it.
EXPORT_OUTPUT=$(mega-export -a "/spt-release/${{ needs.assemble-release.outputs.build_name }}" -f) 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#_\-]*') LINK_MEGA=$(echo "$EXPORT_OUTPUT" | grep -o 'https://mega.nz/file/[A-Za-z0-9#_\-]*')
echo "::set-output name=link_mega::${LINK_MEGA}" echo "::set-output name=link_mega::${LINK_MEGA}"
@ -625,8 +601,8 @@ jobs:
env: env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
BUILD_TYPE: ${{ needs.prepare.outputs.build_type }} BUILD_TYPE: ${{ needs.prepare.outputs.build_type }}
BASE_NAME: ${{ needs.assemble-release.outputs.base_name }} BASE_NAME: ${{ steps.generate-filename.outputs.base_name }}
BUILD_NAME: ${{ needs.assemble-release.outputs.build_name }} BUILD_NAME: ${{ steps.generate-filename.outputs.build_name }}
LINK_MEGA: ${{ steps.upload-mega.outputs.link_mega }} 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 }}
LINK_TORRENT: ${{ steps.upload-https-torrent.outputs.link_torrent }} LINK_TORRENT: ${{ steps.upload-https-torrent.outputs.link_torrent }}