mirror of
https://github.com/LostArtefacts/TR2X.git
synced 2025-03-01 18:47:03 +00:00
build: sync CI with TR1X
This commit is contained in:
parent
af1c12d2f0
commit
75e931158f
40
.github/workflows/job_build_game.yml
vendored
Normal file
40
.github/workflows/job_build_game.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
name: Build the game
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build release assets
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- platform: win
|
||||
just_target: package-win
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
uses: taiki-e/install-action@just
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
fetch-depth: 0
|
||||
|
||||
- id: vars
|
||||
name: Prepare variables
|
||||
run: echo "version=$(just output-current-version)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Package asset (${{ matrix.platform }})
|
||||
run: just ${{ matrix.just_target }}
|
||||
|
||||
- name: Upload the artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ github.event.repository.name }}-${{ steps.vars.outputs.version }}-${{ matrix.platform }}
|
||||
path: |
|
||||
*.zip
|
||||
*.exe
|
87
.github/workflows/job_release.yml
vendored
Normal file
87
.github/workflows/job_release.yml
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
name: Create a new release
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
draft:
|
||||
type: boolean
|
||||
description: "Draft"
|
||||
required: true
|
||||
default: false
|
||||
prerelease:
|
||||
type: boolean
|
||||
description: "Prerelease"
|
||||
required: true
|
||||
default: false
|
||||
release_name:
|
||||
type: string
|
||||
description: "Release name"
|
||||
required: true
|
||||
default: "Release ${{ github.ref_name }}"
|
||||
tag_name:
|
||||
type: string
|
||||
description: "Tag name"
|
||||
required: false
|
||||
default: github.ref_name
|
||||
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Install dependencies"
|
||||
uses: taiki-e/install-action@just
|
||||
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
fetch-depth: 0
|
||||
|
||||
- name: "Download built game assets"
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts/
|
||||
merge-multiple: true
|
||||
|
||||
- name: "Generate changelog"
|
||||
run: |
|
||||
hash=$(git log -1 --pretty=format:%H)
|
||||
tag=$(just output-current-version)
|
||||
echo -e "**Commit: $hash** \n**Tag: $tag**\n\n### Changes\n" > _changes.txt
|
||||
just output-current-changelog >> _changes.txt
|
||||
|
||||
- name: "Get information on the latest pre-release"
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
id: last_release
|
||||
uses: InsonusK/get-latest-release@v1.0.1
|
||||
with:
|
||||
myToken: ${{ github.token }}
|
||||
exclude_types: "draft|release"
|
||||
|
||||
- name: 'Mark the pre-release as latest'
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
uses: EndBug/latest-tag@latest
|
||||
|
||||
- name: "Delete old pre-release assets"
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
uses: mknejp/delete-release-assets@v1
|
||||
continue-on-error: true
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
tag: ${{ steps.last_release.outputs.tag_name }}
|
||||
assets: "*.*"
|
||||
|
||||
- name: "Publish a release"
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: ${{ inputs.release_name }}
|
||||
tag_name: ${{ inputs.tag_name }}
|
||||
body_path: _changes.txt
|
||||
draft: ${{ inputs.draft == true || inputs.draft == 'true' }}
|
||||
prerelease: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
fail_on_unmatched_files: true
|
||||
files: |
|
||||
artifacts/*
|
4
.github/workflows/lint.yml
vendored
4
.github/workflows/lint.yml
vendored
@ -9,8 +9,8 @@ jobs:
|
||||
name: Run code linters
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout code'
|
||||
uses: actions/checkout@v2
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
fetch-depth: 0
|
||||
|
17
.github/workflows/pr_builds.yml
vendored
Normal file
17
.github/workflows/pr_builds.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
name: Create a test build
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- '!stable'
|
||||
- '!develop'
|
||||
|
||||
jobs:
|
||||
package_multiplatform:
|
||||
name: 'Create a test build'
|
||||
uses: ./.github/workflows/job_build_game.yml
|
||||
secrets: inherit
|
17
.github/workflows/prerelease.yml
vendored
17
.github/workflows/prerelease.yml
vendored
@ -9,15 +9,20 @@ on:
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
package_multiplatform:
|
||||
name: Build prerelease assets
|
||||
if: vars.PRERELEASE_ENABLE == 'true'
|
||||
uses: ./.github/workflows/job_build_game.yml
|
||||
secrets: inherit
|
||||
|
||||
publish_prerelease:
|
||||
name: 'Create a prerelease'
|
||||
uses: ./.github/workflows/release.yml
|
||||
if: |
|
||||
github.ref == 'refs/heads/develop' &&
|
||||
vars.RELEASE_ENABLE == 'true'
|
||||
if: vars.PRERELEASE_ENABLE == 'true'
|
||||
name: Create a prerelease
|
||||
needs:
|
||||
- package_multiplatform
|
||||
with:
|
||||
release_name: 'Development snapshot'
|
||||
draft: false
|
||||
prerelease: true
|
||||
tag_name: 'latest'
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/job_release.yml
|
||||
|
115
.github/workflows/release.yml
vendored
115
.github/workflows/release.yml
vendored
@ -9,29 +9,6 @@ on:
|
||||
tags:
|
||||
- "v?[0-9]*"
|
||||
|
||||
workflow_call:
|
||||
inputs:
|
||||
draft:
|
||||
type: boolean
|
||||
description: "Draft"
|
||||
required: true
|
||||
default: false
|
||||
prerelease:
|
||||
type: boolean
|
||||
description: "Prerelease"
|
||||
required: true
|
||||
default: false
|
||||
release_name:
|
||||
type: string
|
||||
description: "Release name"
|
||||
required: true
|
||||
default: "Release ${{ github.ref_name }}"
|
||||
tag_name:
|
||||
type: string
|
||||
description: "Tag name"
|
||||
required: false
|
||||
default: github.ref_name
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
draft:
|
||||
@ -58,94 +35,18 @@ on:
|
||||
jobs:
|
||||
package_multiplatform:
|
||||
name: Build release assets
|
||||
runs-on: ubuntu-latest
|
||||
if: vars.RELEASE_ENABLE == 'true'
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- platform: win
|
||||
just_target: package-win
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
uses: taiki-e/install-action@just
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Package asset (${{ matrix.platform }})
|
||||
run: just ${{ matrix.just_target }} ${{ (inputs.prerelease == true || inputs.prerelease == 'true') && 'debug' || 'release' }}
|
||||
|
||||
- name: Upload the artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: packaged_asset-${{ matrix.platform }}
|
||||
path: |
|
||||
*.zip
|
||||
*.exe
|
||||
uses: ./.github/workflows/job_build_game.yml
|
||||
secrets: inherit
|
||||
|
||||
publish_release:
|
||||
if: vars.RELEASE_ENABLE == 'true'
|
||||
name: Create a GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- package_multiplatform
|
||||
|
||||
steps:
|
||||
- name: "Install dependencies"
|
||||
uses: taiki-e/install-action@just
|
||||
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
fetch-depth: 0
|
||||
|
||||
- name: "Download built game assets"
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts/
|
||||
merge-multiple: true
|
||||
|
||||
- name: "Generate changelog"
|
||||
run: |
|
||||
hash=$(git log -1 --pretty=format:%H)
|
||||
tag=$(just output-current-version)
|
||||
echo -e "**Commit: $hash** \n**Tag: $tag**\n\n### Changes\n" > _changes.txt
|
||||
just output-current-changelog >> _changes.txt
|
||||
|
||||
- name: "Get information on the latest pre-release"
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
id: last_release
|
||||
uses: InsonusK/get-latest-release@v1.0.1
|
||||
with:
|
||||
myToken: ${{ github.token }}
|
||||
exclude_types: "draft|release"
|
||||
|
||||
- name: 'Mark the pre-release as latest'
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
uses: EndBug/latest-tag@latest
|
||||
|
||||
- name: "Delete old pre-release assets"
|
||||
if: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
uses: mknejp/delete-release-assets@v1
|
||||
continue-on-error: true
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
tag: ${{ steps.last_release.outputs.tag_name }}
|
||||
assets: "*.*"
|
||||
|
||||
- name: "Publish a release"
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: ${{ inputs.release_name }}
|
||||
tag_name: ${{ inputs.tag_name }}
|
||||
body_path: _changes.txt
|
||||
draft: ${{ inputs.draft == true || inputs.draft == 'true' }}
|
||||
prerelease: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }}
|
||||
fail_on_unmatched_files: true
|
||||
files: |
|
||||
artifacts/*
|
||||
with:
|
||||
release_name: ${{ inputs.release_name }}
|
||||
draft: ${{ inputs.draft }}
|
||||
prerelease: ${{ inputs.draft }}
|
||||
tag_name: ${{ inputs.tag_name }}
|
||||
uses: ./.github/workflows/job_release.yml
|
||||
|
Loading…
x
Reference in New Issue
Block a user