Merge pull request #3115 from KBVE/dev #418
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI - Alpha | |
on: | |
push: | |
branches: | |
- 'alpha*' | |
jobs: | |
globals: | |
runs-on: ubuntu-latest | |
name: Global Variables | |
outputs: | |
sha256head: ${{ steps.hash.outputs.sha256head }} | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Calculate SHA-256 Hash | |
id: hash | |
run: | | |
echo "::set-output name=sha256head::$(echo -n ${{ github.sha }} | sha256sum | awk '{print $1}')" | |
setup: | |
name: 'Setup' | |
runs-on: ubuntu-latest | |
outputs: | |
build_unity: ${{ steps.set_output.outputs.build_unity }} | |
steps: | |
- id: set_output | |
shell: bash | |
run: | | |
echo "build_unity=true" >> $GITHUB_OUTPUT | |
handle: | |
name: 'Alpha to Beta' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Auto-Pull | |
id: open-pr | |
uses: diillson/[email protected] | |
with: | |
destination_branch: 'beta' | |
pr_title: 'Preparing Beta Branch' | |
pr_body: | | |
*An automated PR for Beta* | |
This PR is for the beta branch | |
pr_label: 'auto-pr' | |
- name: output-url | |
run: echo ${{steps.open-pr.outputs.pr_url}} | |
- name: output-number | |
run: echo ${{steps.open-pr.outputs.pr_number}} | |
- name: output-created | |
run: echo ${{steps.open-pr.outputs.pr_created}} | |
- name: output-has-changed-files | |
run: echo ${{steps.open-pr.outputs.has_changed_files}} | |
alter: | |
name: 'Alpha Deployment Checks' | |
runs-on: ubuntu-latest | |
if: github.repository == 'kbve/kbve' | |
outputs: | |
herbmail: ${{ steps.delta.outputs.herbmail_any_changed }} | |
kbve: ${{ steps.delta.outputs.kbve_any_changed }} | |
rareicon: ${{ steps.delta.outputs.rareicon_all_changed_files }} | |
discordsh: ${{ steps.delta.outputs.discordsh_all_changed_files }} | |
atlas: ${{ steps.delta.outputs.atlas_any_changed }} | |
rustapiprofile: ${{ steps.delta.outputs.rustapiprofile_any_changed }} | |
expolcagents: ${{ steps.delta.outputs.expolcagents_any_changed }} | |
steps: | |
- name: Checkout the repository using git | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: File Changes | |
id: delta | |
uses: tj-actions/changed-files@v39 | |
with: | |
files_yaml: | | |
herbmail: | |
- 'apps/herbmail.com/**' | |
kbve: | |
- 'apps/kbve.com/**' | |
rareicon: | |
- 'apps/rareicon.com/**' | |
discordsh: | |
- 'apps/discord.sh/**' | |
atlas: | |
- 'apps/atlas/kbve_atlas/**' | |
rustapiprofile: | |
- 'apps/rust_api_profile/**' | |
expolcagents: | |
- 'apps/expo-lcagents/**' | |
expo-lcagents-web-build: | |
needs: ['alter', 'globals'] | |
name: Expo LC Agents Web Build | |
runs-on: ubuntu-latest | |
if: needs.alter.outputs.expolcagents == 'true' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Setup PNPM | |
uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Install react-native-cli globally | |
run: pnpm add -g react-native-cli | |
- name: Install dependencies | |
run: pnpm install | |
- name: Setup Watchman (if applicable) | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y watchman | |
watchman --version | |
- name: NX Command | |
shell: bash | |
continue-on-error: true | |
run: | | |
pnpm nx run expo-lcagents:export --verbose | |
- name: NX Command - 2 | |
shell: bash | |
continue-on-error: true | |
run: | | |
pnpm nx run expo-lcagents:export --verbose | |
- name: LCA Expo Build | |
uses: ./.github/actions/kbve-shell | |
with: | |
flag: '-nx expo-lcagents:export' | |
create_pull_request: false | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create .nojekyll file | |
run: | | |
mkdir -p dist/apps/expo-lcagents/ | |
touch dist/apps/expo-lcagents/.nojekyll | |
- name: Create CNAME file | |
run: | | |
mkdir -p dist/apps/expo-lcagents/ | |
echo "lc-agents.com" > dist/apps/expo-lcagents/CNAME | |
- name: LC Agents -> Deployment | |
uses: dobbelina/copy_file_to_another_repo_action@main | |
env: | |
API_TOKEN_GITHUB: ${{ secrets.UNITY_PAT }} | |
with: | |
source_file: 'dist/apps/expo-lcagents/' | |
destination_repo: 'KBVE/lc-agents.com' | |
destination_folder: '/docs' | |
destination_branch: 'main' | |
destination_branch_create: 'patch-kbve-lcagents-deploy-${{ needs.globals.outputs.sha256head }}' | |
user_email: '[email protected]' | |
user_name: 'h0lybyte' | |
commit_message: ${{ github.event.head_commit.message }} | |
rsync_option: '-avrh --delete' | |
# Alpha Builds | |
# buildSaber: | |
# needs: [alter, setup] | |
# name: 'Saber Alpha Build' | |
# runs-on: ubuntu-latest | |
# if: needs.alter.outputs.saber == 'true' && needs.setup.outputs.build_unity == 'true' | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# projectPath: | |
# - apps/saber | |
# unityVersion: | |
# - 2022.3.12f1 | |
# targetPlatform: | |
# - StandaloneWindows64 | |
# # - WebGL * Disabled WebGL for DoTs | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# token: ${{ secrets.UNITY_PAT }} | |
# - uses: actions/cache@v4 | |
# with: | |
# path: ${{ matrix.projectPath }}/Library | |
# key: | |
# Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}-${{ | |
# hashFiles(matrix.projectPath) }} | |
# restore-keys: | | |
# Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}- | |
# Library-${{ matrix.projectPath }}- | |
# Library- | |
# - uses: game-ci/unity-builder@v4 | |
# env: | |
# UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
# UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
# UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
# with: | |
# projectPath: ${{ matrix.projectPath }} | |
# unityVersion: ${{ matrix.unityVersion }} | |
# targetPlatform: ${{ matrix.targetPlatform }} | |
# # WebGL * Disalbed WebGL for DoTs | |
# # | |
# #- uses: actions/upload-artifact@v4 | |
# # with: | |
# # name: build-WebGL | |
# # path: build/WebGL | |
# - uses: actions/upload-artifact@v4 | |
# with: | |
# name: build-StandaloneWindows64 | |
# path: build/StandaloneWindows64 | |
# deploy: | |
# needs: alter | |
# name: 'Process Alpha Branch' | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout the repository using git | |
# uses: actions/checkout@v4 | |
# - name: Setup Node v20 | |
# uses: actions/setup-node@v4 | |
# with: | |
# node-version: 20 | |
# - name: Setup pnpm | |
# uses: pnpm/action-setup@v3 | |
# with: | |
# version: 9 | |
# run_install: false | |
# # @[CACHE]-> [PNPM] -> [START] | |
# - name: Get pnpm Store | |
# shell: bash | |
# run: | | |
# echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
# - name: Setup pnpm Cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: ${{ env.STORE_PATH }} | |
# key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
# restore-keys: | | |
# ${{ runner.os }}-pnpm-store- | |
# # @[CACHE] -> [PNPM] -> [END] | |
# - name: Install pnpm dependencies | |
# run: pnpm install | |
# # @[REPORT] -> [START] | |
# - name: Generate NX Report | |
# shell: bash | |
# run: | | |
# pnpm nx report | |
# # @[REPORT] -> [END] | |
# # [SABER] -> [UNITY] -> [START] | |
# - name: Saber Deployment | |
# if: needs.alter.outputs.saber == 'true' | |
# shell: bash | |
# run: | | |
# echo "Deploying Saber..." | |
# # [SABER] -> [UNITY] -> [END] | |
# # - name: Itch Fish Chip Build | |
# # if: needs.alter.outputs.itchfishchip == 'true' | |
# # shell: bash | |
# # run: | | |
# # pnpm nx build next-itch-fishchip | |
# # - name: Itch Fish Chip Upload Deployment | |
# # if: needs.alter.outputs.itchfishchip == 'true' | |
# # uses: actions/upload-artifact@v4 | |
# # with: | |
# # name: build-WebGL | |
# # path: apps/next-itch-fishchip/dist | |
# # [React] Fish & Chip | |
# # [React] Phaser TravelBox | |
# # - name: Itch TravelBox Build | |
# # if: needs.alter.outputs.reacttravelbox == 'true' | |
# # shell: bash | |
# # run: | | |
# # pnpm nx build react-phaser-travelbox | |
# # - name: Itch Fish Chip Upload Deployment | |
# # if: needs.alter.outputs.reacttravelbox == 'true' | |
# # uses: actions/upload-artifact@v4 | |
# # with: | |
# # name: build-WebGL | |
# # path: apps/kbve.com/public/embed/js/travelbox | |
# # [Build Test] | |
# - name: Build KBVE.com | |
# if: needs.alter.outputs.kbve == 'true' | |
# shell: bash | |
# run: | | |
# pnpm nx build kbve.com | |
# itchdev: | |
# needs: ['alter', 'buildSaber', 'setup'] | |
# name: Itch Dev Saber Deployment | |
# runs-on: ubuntu-latest | |
# if: needs.alter.outputs.saber == 'true' && needs.setup.outputs.build_unity == 'true' | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# - name: Download Windows Build | |
# uses: actions/download-artifact@v4 | |
# id: download | |
# with: | |
# name: build-StandaloneWindows64 | |
# path: build/StandaloneWindows64 | |
# #- name: Download WebGL Build | |
# # uses: actions/download-artifact@v4 | |
# # id: download | |
# # with: | |
# # name: build-WebGL | |
# # path: build/WebGL | |
# - name: Itch Deploy | |
# uses: KikimoraGames/[email protected] | |
# with: | |
# butlerApiKey: ${{ secrets.ITCH_API }} | |
# gameData: ${{steps.download.outputs.download-path}} | |
# itchUsername: kbve | |
# itchGameId: dev-saber | |
# #buildChannel: webgl | |
# buildChannel: windows | |
# itchfishchipdeploy: | |
# needs: ['alter', 'deploy'] | |
# name: Itch Fish Chip Deployment | |
# runs-on: ubuntu-latest | |
# if: needs.alter.outputs.itchfishchip == 'true' | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# - name: Download WebGL Build | |
# uses: actions/download-artifact@v4 | |
# id: download | |
# with: | |
# name: build-WebGL | |
# path: apps/next-itch-fishchip/dist | |
# - name: Itch Deploy | |
# uses: KikimoraGames/[email protected] | |
# with: | |
# butlerApiKey: ${{ secrets.ITCH_API }} | |
# gameData: ${{steps.download.outputs.download-path}} | |
# itchUsername: kbve | |
# itchGameId: fishchip | |
# buildChannel: webgl | |
# itchtravelbox: | |
# needs: ['alter', 'deploy'] | |
# name: Itch TravelBox Deployment | |
# runs-on: ubuntu-latest | |
# if: needs.alter.outputs.reacttravelbox == 'true' | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# - name: Download WebGL Build | |
# uses: actions/download-artifact@v4 | |
# id: download | |
# with: | |
# name: build-WebGL | |
# path: apps/kbve.com/public/embed/js/phaser | |
# - name: Itch Deploy | |
# uses: KikimoraGames/[email protected] | |
# with: | |
# butlerApiKey: ${{ secrets.ITCH_API }} | |
# gameData: ${{steps.download.outputs.download-path}} | |
# itchUsername: kbve | |
# itchGameId: travelbox | |
# buildChannel: webgl |