diff --git a/.github/workflows/build-release-manual.yaml b/.github/workflows/build-release-manual.yaml new file mode 100644 index 0000000..cee0504 --- /dev/null +++ b/.github/workflows/build-release-manual.yaml @@ -0,0 +1,597 @@ +name: SPT-Server Build Release + +on: + push: + tags: + - '*' + +env: + SERVER_URL: https://github.com + REPOSITORY_SPT_SERVER: sp-tarkov/server + REPOSITORY_SPT_SERVER_AIRRYCO: AirryCo/spt-server + RELEASE_BRANCH: master + RELEASE_BRANCH_FIKA: main + +jobs: + prepare: + runs-on: ubuntu-latest + outputs: + PROCEED: ${{ steps.compare-tags.outputs.PROCEED }} + BUILT_TAG: ${{ steps.compare-tags.outputs.BUILT_TAG }} + BUILT_TAG_FIKA: ${{ steps.get-fika-tag.outputs.BUILT_TAG }} + TARGET_TAG: ${{ steps.compare-tags.outputs.TARGET_TAG }} + TARGET_TAG_FIKA: ${{ steps.get-fika-tag.outputs.TARGET_TAG}} + + SPT_VERSION: ${{ steps.versions.outputs.SPT_VERSION }} + EFT_VERSION: ${{ steps.versions.outputs.EFT_VERSION }} + SPT_SERVER_COMMIT: ${{ steps.versions.outputs.SPT_SERVER_COMMIT }} + SPT_SERVER_COMMIT_TIME: ${{ steps.versions.outputs.SPT_SERVER_COMMIT_TIME }} + BUILD_DATE: ${{ steps.versions.outputs.DATE }} + BUILD_DATE_TIME: ${{ steps.versions.outputs.DATE_TIME }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get Latest Tag From SPT + id: get-latest-tag + run: | + GIT_LFS_SKIP_SMUDGE=1 git clone -b ${{ github.ref_name }} ${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER }}.git Server + cd Server + SPT_SERVER_LATEST_TAG=${{ github.ref_name }} + echo "👽 SPT_SERVER_LATEST_TAG = $SPT_SERVER_LATEST_TAG" + echo "SPT_SERVER_LATEST_TAG=$SPT_SERVER_LATEST_TAG" >> $GITHUB_OUTPUT + shell: bash + - name: Compare Tags + id: compare-tags + run: | + source trigger.release + server_last_built_tag=$server + server_latest_tag=${{ steps.get-latest-tag.outputs.SPT_SERVER_LATEST_TAG }} + echo "BUILT_TAG=$server_last_built_tag" >> $GITHUB_OUTPUT + echo "TARGET_TAG=$server_latest_tag" >> $GITHUB_OUTPUT + echo "PROCEED=true" >> $GITHUB_OUTPUT + shell: bash + - name: Get Fika-Server Latest Tag + id: get-fika-tag + if: steps.compare-tags.outputs.PROCEED == 'true' + run: | + source trigger.release + fika_built_tag=$fika + fika_latest_tag=$(git ls-remote --tags https://github.com/project-fika/Fika-Server.git | sort -t/ -k3 -V | tail -n 1 | awk '{print $2}' | sed 's/refs\/tags\///') + echo "BUILT_TAG=$fika_built_tag" >> $GITHUB_OUTPUT + echo "TARGET_TAG=$fika_latest_tag" >> $GITHUB_OUTPUT + shell: bash + - name: Extract versions + id: versions + if: steps.compare-tags.outputs.PROCEED == 'true' + run: | + cd Server + SERVER_TAG=${{ steps.get-latest-tag.outputs.SPT_SERVER_LATEST_TAG }} + SPT_SERVER_COMMIT=$(git rev-parse --short $SERVER_TAG) + SPT_SERVER_COMMIT_TIME=$(git log --pretty=format:"%ai" -1) + + # Extract versions from core.json + cp -v project/assets/configs/core.json . + SPT_VERSION=$(jq -r '.sptVersion' core.json) + EFT_VERSION=$(jq -r '.compatibleTarkovVersion' core.json) + + echo "👽 SPT_VERSION = $SPT_VERSION" + echo "👽 EFT_VERSION = $EFT_VERSION" + echo "👽 SERVER_TAG = $SERVER_TAG" + echo "👽 SPT_SERVER_COMMIT = $SPT_SERVER_COMMIT" + echo "👽 SPT_SERVER_COMMIT_TIME = $SPT_SERVER_COMMIT_TIME" + + echo "SPT_VERSION=$SPT_VERSION" >> $GITHUB_OUTPUT + echo "EFT_VERSION=$EFT_VERSION" >> $GITHUB_OUTPUT + echo "SPT_SERVER_COMMIT=$SPT_SERVER_COMMIT" >> $GITHUB_OUTPUT + echo "SPT_SERVER_COMMIT_TIME=$SPT_SERVER_COMMIT_TIME" >> $GITHUB_OUTPUT + + echo "DATE=$(date +%Y%m%d)" >> $GITHUB_OUTPUT + echo "DATE_TIME=$(date +%Y%m%d%H%M%S)" >> $GITHUB_OUTPUT + shell: bash + + build-server-linux: + needs: prepare + if: ${{ needs.prepare.outputs.PROCEED == 'true' }} + runs-on: ubuntu-latest + env: + OUTPUT_DIR: spt-server + SOURCECODE_DIR: ${{ github.workspace }}/code + + DOCKERHUB_USER: stblog + DOCKERHUB_REPOSITORY: spt-server + GHCR_USER: airryco + GHCR_REPOSITORY: spt-server + outputs: + LINUX_COMMIT_ID: ${{ steps.debug-info.outputs.COMMIT_ID }} + LINUX_COMMIT_ID_WHOLE: ${{ steps.debug-info.outputs.COMMIT_ID_WHOLE }} + LINUX_ARTIFACT: ${{ steps.filename.outputs.LINUX_ARTIFACT }} + LINUX_RELEASE_FILE: ${{ steps.filename.outputs.LINUX_RELEASE }} + LINUX_RELEASE_FIKA_FILE: ${{ steps.filename.outputs.LINUX_RELEASE_FIKA }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Git Config + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "bot@github.com" + + - name: Clone AirryCo's Linux Server Code + run: | + git clone -b ${{ github.ref_name }} ${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }} ${{ env.SOURCECODE_DIR }} + cd ${{ env.SOURCECODE_DIR }} + git lfs pull + shell: bash + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20.11.1 + + - name: Runner Debug Information + id: debug-info + run: | + cp -v ${{ env.SOURCECODE_DIR }}/project/package.json . + cd ${{ env.SOURCECODE_DIR }} + echo "git version: $(git --version)" + echo "git lfs version: $(git-lfs --version)" + echo "node.js version: $(node --version)" + echo "npm version: $(npm --version)" + echo "latest commit hash: $(git rev-parse HEAD)" + echo "last commit message:" && git log -1 --pretty=%B + echo "COMMIT_ID=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "COMMIT_ID_WHOLE=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + shell: bash + + - name: Cache NPM Dependencies + id: cache-npm-dependencies + uses: actions/cache@v4 + with: + path: | + ${{ env.SOURCECODE_DIR }}/project/node_modules + key: ${{ runner.os }}-npm-dependencies-${{ hashFiles('package.json') }} + restore-keys: | + ${{ runner.os }}-npm-dependencies- + + - name: Install NPM Dependencies + if: steps.cache-npm-dependencies.outputs.cache-hit != 'true' + run: | + cd ${{ env.SOURCECODE_DIR }}/project + npm install + shell: bash + + - name: Build Linux Server + id: build-server + run: | + cd ${{ env.SOURCECODE_DIR }}/project + npm run build:release + ls -l build + mv build ${{ env.OUTPUT_DIR }} + shell: bash + + - name: Generate Linux File Name + id: filename + run: | + artifact_name=${{ env.OUTPUT_DIR }}-${{ needs.prepare.outputs.TARGET_TAG }}-linux-release-${{ steps.debug-info.outputs.COMMIT_ID }}-EFT${{ needs.prepare.outputs.EFT_VERSION }}-${{ needs.prepare.outputs.BUILD_DATE_TIME }}-artifact + release_name=${{ env.OUTPUT_DIR }}-${{ needs.prepare.outputs.TARGET_TAG }}-linux-release-${{ steps.debug-info.outputs.COMMIT_ID }}-EFT${{ needs.prepare.outputs.EFT_VERSION }}-${{ needs.prepare.outputs.BUILD_DATE_TIME }} + echo "LINUX_ARTIFACT=$artifact_name" >> $GITHUB_OUTPUT + echo "LINUX_RELEASE=$release_name.zip" >> $GITHUB_OUTPUT + echo "LINUX_RELEASE_FIKA=$release_name-fika.zip" >> $GITHUB_OUTPUT + shell: bash + + - name: Artifact Linux Server + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.filename.outputs.LINUX_ARTIFACT }} + path: ${{ env.SOURCECODE_DIR }}/project/${{ env.OUTPUT_DIR }} + overwrite: true + + build-docker-image-multi-arch: + needs: [prepare, build-server-linux] + runs-on: ubuntu-latest + env: + DOCKERHUB_USER: stblog + DOCKERHUB_REPOSITORY: spt-server + GHCR_USER: airryco + GHCR_REPOSITORY: spt-server + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Git pull + run: | + git pull + + # docker + - name: Extract metadata for Docker with release version + if: ${{ !contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + id: meta + uses: docker/metadata-action@v5 + with: + images: | + ${{ env.DOCKERHUB_USER }}/${{ env.DOCKERHUB_REPOSITORY }} + ghcr.io/${{ env.GHCR_USER }}/${{ env.GHCR_REPOSITORY }} + registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server + tags: | + type=semver,pattern={{version}},value=${{ needs.prepare.outputs.TARGET_TAG }} + type=semver,pattern={{major}}.{{minor}},value=${{ needs.prepare.outputs.TARGET_TAG }} + type=raw,value=latest + - name: Extract metadata for Docker with release version and fika built-in + if: ${{ !contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + id: meta-fika + uses: docker/metadata-action@v5 + with: + images: | + ${{ env.DOCKERHUB_USER }}/${{ env.DOCKERHUB_REPOSITORY }} + ghcr.io/${{ env.GHCR_USER }}/${{ env.GHCR_REPOSITORY }} + registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server + tags: | + type=semver,pattern={{version}}-fika,value=${{ needs.prepare.outputs.TARGET_TAG }} + type=semver,pattern={{major}}.{{minor}}-fika,value=${{ needs.prepare.outputs.TARGET_TAG }} + type=raw,value=latest-fika + - name: Extract metadata for Docker with bem version + if: ${{ contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + id: meta-bem + uses: docker/metadata-action@v5 + with: + images: | + ${{ env.DOCKERHUB_USER }}/${{ env.DOCKERHUB_REPOSITORY }} + ghcr.io/${{ env.GHCR_USER }}/${{ env.GHCR_REPOSITORY }} + registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server + tags: | + type=semver,pattern={{version}},value=${{ needs.prepare.outputs.TARGET_TAG }} + type=semver,pattern={{major}}.{{minor}},value=${{ needs.prepare.outputs.TARGET_TAG }} + - name: Extract metadata for Docker with bem version and fika built-in + if: ${{ contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + id: meta-bem-fika + uses: docker/metadata-action@v5 + with: + images: | + ${{ env.DOCKERHUB_USER }}/${{ env.DOCKERHUB_REPOSITORY }} + ghcr.io/${{ env.GHCR_USER }}/${{ env.GHCR_REPOSITORY }} + registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server + tags: | + type=semver,pattern={{version}}-fika,value=${{ needs.prepare.outputs.TARGET_TAG }} + type=semver,pattern={{major}}.{{minor}}-fika,value=${{ needs.prepare.outputs.TARGET_TAG }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + # DockerHub + - name: Login to Dockerhub + uses: docker/login-action@v3 + with: + username: ${{ env.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + # GitHub Container Registry + - name: Login to Github Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ env.GHCR_USER }} + password: ${{ secrets.GHCR_TOKEN }} + # Aliyun Registry + - name: Login to Aliyun Registry + uses: docker/login-action@v3 + with: + registry: registry.cn-shenzhen.aliyuncs.com + username: ${{ secrets.ALIYUN_REGISTRY_USER }} + password: ${{ secrets.ALIYUN_REGISTRY_TOKEN }} + + - name: Build and Push For Release With Fika + if: ${{ !contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: docker/build-push-action@v6 + with: + context: ./docker + file: ./docker/Dockerfile-fika + push: true + tags: ${{ steps.meta-fika.outputs.tags }} + labels: | + ${{ steps.meta-fika.outputs.labels }} + org.opencontainers.image.source=https://github.com/AirryCo/spt-server + org.opencontainers.image.url=https://github.com/AirryCo/spt-server + org.opencontainers.image.revision=${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID_WHOLE }} + platforms: linux/amd64,linux/arm64 + - name: Build and Push For Release + if: ${{ !contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: docker/build-push-action@v6 + with: + context: ./docker + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: | + ${{ steps.meta.outputs.labels }} + org.opencontainers.image.source=https://github.com/AirryCo/spt-server + org.opencontainers.image.url=https://github.com/AirryCo/spt-server + org.opencontainers.image.revision=${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID_WHOLE }} + platforms: linux/amd64,linux/arm64 + + - name: Build and Push For BEM With Fika + if: ${{ contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: docker/build-push-action@v6 + with: + context: ./docker + file: ./docker/Dockerfile-fika + push: true + tags: ${{ steps.meta-bem-fika.outputs.tags }} + labels: | + ${{ steps.meta-bem-fika.outputs.labels }} + org.opencontainers.image.source=https://github.com/AirryCo/spt-server + org.opencontainers.image.url=https://github.com/AirryCo/spt-server + org.opencontainers.image.revision=${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID_WHOLE }} + platforms: linux/amd64,linux/arm64 + - name: Build and Push For BEM + if: ${{ contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: docker/build-push-action@v6 + with: + context: ./docker + push: true + tags: ${{ steps.meta-bem.outputs.tags }} + labels: | + ${{ steps.meta-bem.outputs.labels }} + org.opencontainers.image.source=https://github.com/AirryCo/spt-server + org.opencontainers.image.url=https://github.com/AirryCo/spt-server + org.opencontainers.image.revision=${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID_WHOLE }} + platforms: linux/amd64,linux/arm64 + + build-server-windows: + needs: [prepare, build-server-linux] + runs-on: windows-latest + env: + OUTPUT_DIR: spt-server + SOURCECODE_DIR: c:/snapshot + outputs: + WIN_COMMIT_ID: ${{ steps.debug-info.outputs.COMMIT_ID }} + WIN_ARTIFACT: ${{ steps.filename.outputs.WIN_ARTIFACT }} + WIN_RELEASE_FILE: ${{ steps.filename.outputs.WIN_RELEASE }} + WIN_RELEASE_FIKA_FILE: ${{ steps.filename.outputs.WIN_RELEASE_FIKA }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Clone AirroCo's Server Code + run: | + git clone -b ${{ env.RELEASE_BRANCH }} --depth=1 ${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }} ${{ env.SOURCECODE_DIR }} + cd ${{ env.SOURCECODE_DIR }} + git lfs pull + shell: bash + + # Modify the JSON file with PowerShell + - name: Modify JSON file with PowerShell + run: | + cd ${{ env.SOURCECODE_DIR }}/project/assets/configs + $json = Get-Content -Path "core.json" | ConvertFrom-Json + $json.projectName = "AirryCo's SPT Windows" + $json | ConvertTo-Json -Depth 10 | Set-Content -Path "core.json" + shell: pwsh + - name: Replace serverExeName + run: | + cd ${{ env.SOURCECODE_DIR }}/project + sed -i 's/SPT.Server/SPT.Server.exe/g' gulpfile.mjs + shell: bash + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20.11.1 + + - name: Runner Debug Information + id: debug-info + run: | + cp -v ${{ env.SOURCECODE_DIR }}/project/package.json . + cd ${{ env.SOURCECODE_DIR }} + echo "git version: $(git --version)" + echo "git lfs version: $(git-lfs --version)" + echo "node.js version: $(node --version)" + echo "npm version: $(npm --version)" + echo "latest commit hash: $(git rev-parse HEAD)" + echo "last commit message:" && git log -1 --pretty=%B + echo "COMMIT_ID=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + shell: bash + + - name: Cache NPM Dependencies + id: cache-npm-dependencies + uses: actions/cache@v4 + with: + path: | + ${{ env.SOURCECODE_DIR }}/project/node_modules + key: ${{ runner.os }}-npm-dependencies-${{ hashFiles('package.json') }} + restore-keys: | + ${{ runner.os }}-npm-dependencies- + + - name: Install NPM Dependencies + if: steps.cache-npm-dependencies.outputs.cache-hit != 'true' + run: | + cd ${{ env.SOURCECODE_DIR }}/project + npm install + shell: pwsh + + - name: Build Windows Server + id: build-server + run: | + cd ${{ env.SOURCECODE_DIR }}/project + npm run build:release + ls -l build + mv build ${{ env.OUTPUT_DIR }} + shell: bash + + - name: Generate Windows File Name + id: filename + run: | + artifact_name=${{ env.OUTPUT_DIR }}-${{ needs.prepare.outputs.TARGET_TAG }}-win-release-${{ steps.debug-info.outputs.COMMIT_ID }}-EFT${{ needs.prepare.outputs.EFT_VERSION }}-${{ needs.prepare.outputs.BUILD_DATE_TIME }}-artifact + release_name=${{ env.OUTPUT_DIR }}-${{ needs.prepare.outputs.TARGET_TAG }}-win-release-${{ steps.debug-info.outputs.COMMIT_ID }}-EFT${{ needs.prepare.outputs.EFT_VERSION }}-${{ needs.prepare.outputs.BUILD_DATE_TIME }} + echo "WIN_ARTIFACT=$artifact_name" >> $GITHUB_OUTPUT + echo "WIN_RELEASE=$release_name.zip" >> $GITHUB_OUTPUT + echo "WIN_RELEASE_FIKA=$release_name-fika.zip" >> $GITHUB_OUTPUT + shell: bash + + - name: Artifact Windows Server + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.filename.outputs.WIN_ARTIFACT }} + path: ${{ env.SOURCECODE_DIR }}/project/${{ env.OUTPUT_DIR }} + overwrite: true + + assemble-and-publish: + needs: [prepare, build-server-windows, build-server-linux, build-docker-image-multi-arch] + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Git Config + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "bot@github.com" + - name: Push Code To GitHub + run: | + git pull + rm trigger.release + echo "server=${{ needs.prepare.outputs.TARGET_TAG }}" > trigger.release + echo "fika=${{ needs.prepare.outputs.TARGET_TAG_FIKA }}" >> trigger.release + git add trigger.release + git commit -m "🤖 bump to \`${{ needs.prepare.outputs.TARGET_TAG }}\`." + git push + shell: bash + + - name: Download Windows Artifact + uses: actions/download-artifact@v4 + with: + name: ${{ needs.build-server-windows.outputs.WIN_ARTIFACT }} + path: windows + + - name: Download Linux Artifact + uses: actions/download-artifact@v4 + with: + name: ${{ needs.build-server-linux.outputs.LINUX_ARTIFACT }} + path: linux + + - name: Download Fika-Server + run: | + wget https://github.com/project-fika/Fika-Server/releases/download/${{ needs.prepare.outputs.TARGET_TAG_FIKA }}/fika-server.zip + + - name: Compress Releases + id: compress-release + run: | + cd windows + zip -r ../${{ needs.build-server-windows.outputs.WIN_RELEASE_FILE }} * + cd ../linux + zip -r ../${{ needs.build-server-linux.outputs.LINUX_RELEASE_FILE }} * + ls -R .. + shell: bash + - name: Compress Releases With Fika + id: compress-release-fika + run: | + cd windows + unzip ../fika-server.zip + zip -r ../${{ needs.build-server-windows.outputs.WIN_RELEASE_FIKA_FILE }} * + cd ../linux + unzip ../fika-server.zip + zip -r ../${{ needs.build-server-linux.outputs.LINUX_RELEASE_FIKA_FILE }} * + ls -R .. + + - name: Create Github Pre-release + id: create_pre_release + if: ${{ contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: softprops/action-gh-release@v2 + with: + name: ${{ needs.prepare.outputs.TARGET_TAG }} + tag_name: ${{ needs.prepare.outputs.TARGET_TAG }} + prerelease: true + body: | + SPT: ***${{ needs.prepare.outputs.SPT_VERSION }}*** + + Tarkov: ***${{ needs.prepare.outputs.EFT_VERSION }}*** + + [SPT/Server](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER }}) commit hash: [${{ needs.prepare.outputs.SPT_SERVER_COMMIT }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER }}/src/commit/${{ needs.prepare.outputs.SPT_SERVER_COMMIT }}), commit time: **${{ needs.prepare.outputs.SPT_SERVER_COMMIT_TIME }}** + + [AirryCo/spt-server](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}) commit: [${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}/src/commit/${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID }}) + + Fika-Server: [${{ needs.prepare.outputs.TARGET_TAG_FIKA }}](https://github.com/project-fika/Fika-Server/tree/${{ needs.prepare.outputs.TARGET_TAG_FIKA }}) + + Build time: ***${{ needs.prepare.outputs.BUILD_DATE_TIME }}*** + + > [!WARNING] + > After downloading, please use extraction software like WinRAR or [7-Zip](https://www.7-zip.org/) to unzip the files, then copy them to the Tarkov root directory. Do not use Windows File Explorer to directly open and copy the files. + + ***Docker Supported For linux/amd64 and linux/arm64***: + + ```bash + docker pull stblog/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + docker pull ghcr.io/airryco/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + ``` + + Fika-Server built-in: + + ```bash + docker pull stblog/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + docker pull ghcr.io/airryco/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + ``` + + Full Changelog: + - spt-server: [${{ needs.prepare.outputs.BUILT_TAG }}....${{ needs.prepare.outputs.TARGET_TAG }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}/compare/${{ needs.prepare.outputs.BUILT_TAG }}...${{ needs.prepare.outputs.TARGET_TAG }}) + - fika-server: [${{ needs.prepare.outputs.BUILT_TAG_FIKA }}....${{ needs.prepare.outputs.TARGET_TAG_FIKA }}](https://github.com/project-fika/Fika-Server/compare/${{ needs.prepare.outputs.BUILT_TAG }}...${{ needs.prepare.outputs.TARGET_TAG }}) + files: | + ${{ needs.build-server-windows.outputs.WIN_RELEASE_FILE }} + ${{ needs.build-server-linux.outputs.LINUX_RELEASE_FILE }} + ${{ needs.build-server-windows.outputs.WIN_RELEASE_FIKA_FILE }} + ${{ needs.build-server-linux.outputs.LINUX_RELEASE_FIKA_FILE }} + + - name: Create Github Release + id: create_release + if: ${{ !contains(needs.prepare.outputs.TARGET_TAG, 'BEM') }} + uses: softprops/action-gh-release@v2 + with: + name: ${{ needs.prepare.outputs.TARGET_TAG }} + tag_name: ${{ needs.prepare.outputs.TARGET_TAG }} + prerelease: false + body: | + SPT: ***${{ needs.prepare.outputs.SPT_VERSION }}*** + + Tarkov: ***${{ needs.prepare.outputs.EFT_VERSION }}*** + + [SPT/Server](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER }}) commit hash: [${{ needs.prepare.outputs.SPT_SERVER_COMMIT }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER }}/src/commit/${{ needs.prepare.outputs.SPT_SERVER_COMMIT }}), commit time: **${{ needs.prepare.outputs.SPT_SERVER_COMMIT_TIME }}** + + [AirryCo/spt-server](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}) commit: [${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}/src/commit/${{ needs.build-server-linux.outputs.LINUX_COMMIT_ID }}) + + Fika-Server: [${{ needs.prepare.outputs.TARGET_TAG_FIKA }}](https://github.com/project-fika/Fika-Server/tree/${{ needs.prepare.outputs.TARGET_TAG_FIKA }}) + + Build time: ***${{ needs.prepare.outputs.BUILD_DATE_TIME }}*** + + > [!WARNING] + > After downloading, please use extraction software like WinRAR or [7-Zip](https://www.7-zip.org/) to unzip the files, then copy them to the Tarkov root directory. Do not use Windows File Explorer to directly open and copy the files. + + ***Docker Supported For linux/amd64 and linux/arm64***: + + ```bash + docker pull stblog/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + docker pull ghcr.io/airryco/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:${{ needs.prepare.outputs.TARGET_TAG }} + ``` + + Fika-Server built-in: + + ```bash + docker pull stblog/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + docker pull ghcr.io/airryco/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:${{ needs.prepare.outputs.TARGET_TAG }}-fika + ``` + + Full Changelog: + - spt-server: [${{ needs.prepare.outputs.BUILT_TAG }}....${{ needs.prepare.outputs.TARGET_TAG }}](${{ env.SERVER_URL }}/${{ env.REPOSITORY_SPT_SERVER_AIRRYCO }}/compare/${{ needs.prepare.outputs.BUILT_TAG }}...${{ needs.prepare.outputs.TARGET_TAG }}) + - fika-server: [${{ needs.prepare.outputs.BUILT_TAG_FIKA }}....${{ needs.prepare.outputs.TARGET_TAG_FIKA }}](https://github.com/project-fika/Fika-Server/compare/${{ needs.prepare.outputs.BUILT_TAG }}...${{ needs.prepare.outputs.TARGET_TAG }}) + files: | + ${{ needs.build-server-windows.outputs.WIN_RELEASE_FILE }} + ${{ needs.build-server-linux.outputs.LINUX_RELEASE_FILE }} + ${{ needs.build-server-windows.outputs.WIN_RELEASE_FIKA_FILE }} + ${{ needs.build-server-linux.outputs.LINUX_RELEASE_FIKA_FILE }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 7e00036..f1a56ab 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ FROM node:20.11.1-bullseye AS server-builder RUN apt update && apt install -y git git-lfs p7zip-full && \ - git clone -b master --depth=1 https://github.com/AirryCo/spt-server.git /snapshot && \ + git clone -b 3.10.2 --depth=1 https://github.com/AirryCo/spt-server.git /snapshot && \ cd /snapshot && git lfs pull && \ cd project && \ npm install && npm run build:release && \ diff --git a/docker/Dockerfile-fika b/docker/Dockerfile-fika index 08f73d7..ca1e12d 100644 --- a/docker/Dockerfile-fika +++ b/docker/Dockerfile-fika @@ -7,7 +7,7 @@ RUN apk add --no-cache git unzip && \ FROM node:20.11.1-bullseye AS server-builder RUN apt update && apt install -y git git-lfs p7zip-full && \ - git clone -b master --depth=1 https://github.com/AirryCo/spt-server.git /snapshot && \ + git clone -b 3.10.2 --depth=1 https://github.com/AirryCo/spt-server.git /snapshot && \ cd /snapshot && git lfs pull && \ cd project && \ npm install && npm run build:release && \