name: Build Assets on: push: branches: main workflow_dispatch: inputs: cdn_branch: type: string required: false default: main description: What CDN branch to write to zip_url: type: string required: false description: ZIP URL to download instead of Steam client zip_root: type: string required: false description: Root dir of ZIP which houses the executable and Data dir schedule: - cron: '0 2 * * *' concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.cdn_branch }} cancel-in-progress: true env: DISCORD_CLIENT_ID: ${{ secrets.DISCORD_CLIENT_ID }} GH_TOKEN: ${{ secrets.GH_TOKEN }} DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }} DATABASE_URL: ${{ secrets.DATABASE_URL }} VIDEOS_SHEET: ${{ secrets.VIDEOS_SHEET }} GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} WOTB_GLOSSARY: ${{ secrets.WOTB_GLOSSARY }} WOTB_DLC_CDN: ${{ secrets.WOTB_DLC_CDN }} PUBLIC_WARGAMING_APPLICATION_ID: ${{ secrets.PUBLIC_WARGAMING_APPLICATION_ID }} PUBLIC_ASSET_REPO: ${{ secrets.PUBLIC_ASSET_REPO }} PUBLIC_ASSET_BRANCH: ${{ github.event.inputs.cdn_branch || secrets.PUBLIC_ASSET_BRANCH }} jobs: download_client: name: Download client runs-on: ubuntu-latest steps: - name: (ZIP) Maximize build space if: github.event.inputs.zip_url != '' uses: easimon/maximize-build-space@master with: root-reserve-mb: 512 swap-size-mb: 1024 remove-dotnet: 'true' - uses: actions/checkout@v4 with: submodules: recursive token: ${{ secrets.GH_TOKEN }} - name: (Steam) Setup bun uses: oven-sh/setup-bun@v1 if: github.event.inputs.zip_url == '' - name: (Steam) Install dependencies if: github.event.inputs.zip_url == '' run: bun install - name: (Steam) Setup DepotDownloader if: github.event.inputs.zip_url == '' run: bun run setup:depotdownloader - name: (Steam) Download client if: github.event.inputs.zip_url == '' run: | chmod +x ./temp/depotDownloader/DepotDownloader ./temp/depotDownloader/DepotDownloader -q -os windows -app 444200 -username ${{ secrets.DEPOT_DOWNLOADER_USERNAME }} -password "${{ secrets.DEPOT_DOWNLOADER_PASSWORD }}" - name: (Steam) Apply patches if: github.event.inputs.zip_url == '' run: bun setup:patches --depot - name: (ZIP) Download client if: github.event.inputs.zip_url != '' env: ZIP_URL: ${{ github.event.inputs.zip_url }} ZIP_ROOT: ${{ github.event.inputs.zip_root }} run: | wget -q -O client.zip $ZIP_URL unzip -q client.zip -d client rm client.zip mkdir -p depots/444202/0 mv client/$ZIP_ROOT/* depots/444202/0 - name: Archive depots uses: actions/upload-artifact@v4 with: name: depots path: depots build_assets: name: Build assets runs-on: ubuntu-latest needs: download_client steps: - uses: actions/checkout@v4 - name: Setup bun uses: oven-sh/setup-bun@v1 - name: Install dependencies run: bun install - name: Download depots uses: actions/download-artifact@v4 with: name: depots path: depots - name: Build assets run: bun run build:assets --all-targets --depot --production