Skip to content

Commit

Permalink
Merge branch 'KSP-RO:master' into FixFairingThickness
Browse files Browse the repository at this point in the history
  • Loading branch information
FioraAeterna authored Aug 17, 2023
2 parents 6ab53a4 + c7e79c8 commit 7508457
Show file tree
Hide file tree
Showing 9 changed files with 357 additions and 18 deletions.
96 changes: 96 additions & 0 deletions .github/workflows/attachReleaseArtifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: "Attach Release Artifacts"

# Controls when the action will run.
on:
release:
types: [published]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
attach-release-artifacts:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Get Branch
shell: bash
run: |
releaseBranch=${{ github.event.release.target_commitish }}
echo "Found branch ${releaseBranch}"
echo "tagged_branch=${releaseBranch}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ env.tagged_branch }}

- name: Download required assemblies
id: download-assemblies
uses: KSP-RO/BuildTools/download-assemblies@master
with:
KSP_ZIP_PASSWORD: ${{ secrets.KSP_ZIP_PASSWORD }}

- name: Update AssemblyInfo
uses: KSP-RO/BuildTools/update-assembly-info@master
with:
path: ${GITHUB_WORKSPACE}/Source/ProceduralFairings/Properties/AssemblyInfo.cs
tag: ${{ github.event.release.tag_name }}

- name: Build mod solution
run: msbuild ${GITHUB_WORKSPACE}/Source/ProceduralFairings.sln /t:build /restore /p:RestorePackagesConfig=true /p:Configuration=Release /p:ReferencePath="${{ steps.download-assemblies.outputs.ksp-dll-path }}"

- name: Update version file
uses: KSP-RO/BuildTools/update-version-file@master
with:
tag: ${{ github.event.release.tag_name }}
path: ${GITHUB_WORKSPACE}/GameData/ProceduralFairings/ProceduralFairings.version

- name: Update changelog file
uses: KSP-RO/BuildTools/process-changelog@master
with:
tag: ${{ github.event.release.tag_name }}
body: ${{ github.event.release.body }}
path: ${GITHUB_WORKSPACE}/GameData/ProceduralFairings/changelog.cfg

- name: Assemble release
id: assemble-release
run: |
RELEASE_DIR="${RUNNER_TEMP}/release"
echo "Release dir: ${RELEASE_DIR}"
echo "Release zip: ${RELEASE_DIR}/ProceduralFairings-${{ github.event.release.tag_name }}.zip"
mkdir -v "${RELEASE_DIR}"
echo "::set-output name=release-dir::${RELEASE_DIR}"
cp -v -R "${GITHUB_WORKSPACE}/GameData" "${RELEASE_DIR}"
cp -v -R "${GITHUB_WORKSPACE}/LICENSE.md" "${RELEASE_DIR}/GameData/ProceduralFairings/LICENSE.md"
cd ${RELEASE_DIR}
zip -r ProceduralFairings-${{ github.event.release.tag_name }}.zip GameData
- name: Upload package to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ steps.assemble-release.outputs.release-dir }}/ProceduralFairings-${{ github.event.release.tag_name }}.zip
asset_name: ProceduralFairings-${{ github.event.release.tag_name }}.zip
asset_content_type: application/zip

- name: Setup git config
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"
- name: Commit changes
shell: bash
env:
TAG_STRING: ${{ github.event.release.tag_name }}
run: |
RELEASEBRANCH=${{ env.tagged_branch }}
git add "${GITHUB_WORKSPACE}/GameData/ProceduralFairings/ProceduralFairings.version"
git add "${GITHUB_WORKSPACE}/GameData/ProceduralFairings/changelog.cfg"
git commit -m "Update version to $TAG_STRING"
git push origin $RELEASEBRANCH
git tag $TAG_STRING $RELEASEBRANCH --force
git push origin $TAG_STRING --force
74 changes: 74 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# This is a basic workflow to help you get started with Actions

name: build

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
check-secret:
uses: KSP-RO/BuildTools/.github/workflows/check-secret.yml@master
secrets:
KSP_ZIP_PASSWORD: ${{ secrets.KSP_ZIP_PASSWORD }}

validate-cfg-files:
uses: KSP-RO/BuildTools/.github/workflows/validate-cfg-files.yml@master

build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
needs: [check-secret]
if: needs.check-secret.outputs.has-password == 'true'
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 100

- name: Download required assemblies
id: download-assemblies
uses: KSP-RO/BuildTools/download-assemblies@master
with:
KSP_ZIP_PASSWORD: ${{ secrets.KSP_ZIP_PASSWORD }}

- name: Update AssemblyInfo
uses: KSP-RO/BuildTools/update-assembly-info@master
with:
path: ${GITHUB_WORKSPACE}/Source/ProceduralFairings/Properties/AssemblyInfo.cs
tag: "7.0.0.0"

- name: Build mod solution
run: msbuild ${GITHUB_WORKSPACE}/Source/ProceduralFairings.sln /t:build /restore /p:RestorePackagesConfig=true /p:Configuration=Release /p:ReferencePath="${{ steps.download-assemblies.outputs.ksp-dll-path }}"

- name: Build metadata
uses: KSP-RO/BuildTools/update-version-file@master
with:
path: ${GITHUB_WORKSPACE}/GameData/ProceduralFairings/ProceduralFairings.version
tag: "v2.0.0.0"

- name: Assemble release
id: assemble-release
run: |
RELEASE_DIR="${RUNNER_TEMP}/release"
echo "Release dir: ${RELEASE_DIR}"
mkdir -v "${RELEASE_DIR}"
echo "::set-output name=release-dir::${RELEASE_DIR}"
cp -v -R "${GITHUB_WORKSPACE}/GameData" "${RELEASE_DIR}"
cp -v -R "${GITHUB_WORKSPACE}/LICENSE.md" "${RELEASE_DIR}/GameData/ProceduralFairings/LICENSE.md"
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: ProceduralFairings
path: ${{ steps.assemble-release.outputs.release-dir }}
61 changes: 61 additions & 0 deletions .github/workflows/pr-comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Comment on pull request
on:
workflow_run:
workflows: ['build']
types: [completed]
jobs:
pr_comment:
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v5
with:
# This snippet is public-domain, taken from
# https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml
script: |
async function upsertComment(owner, repo, issue_number, purpose, body) {
const {data: comments} = await github.rest.issues.listComments(
{owner, repo, issue_number});
const marker = `<!-- bot: ${purpose} -->`;
body = marker + "\n" + body;
const existing = comments.filter((c) => c.body.includes(marker));
if (existing.length > 0) {
const last = existing[existing.length - 1];
core.info(`Updating comment ${last.id}`);
await github.rest.issues.updateComment({
owner, repo,
body,
comment_id: last.id,
});
} else {
core.info(`Creating a comment in issue / PR #${issue_number}`);
await github.rest.issues.createComment({issue_number, body, owner, repo});
}
}
const {owner, repo} = context.repo;
const run_id = ${{github.event.workflow_run.id}};
const pull_requests = ${{ toJSON(github.event.workflow_run.pull_requests) }};
if (!pull_requests.length) {
return core.error("This workflow doesn't match any pull requests!");
}
const artifacts = await github.paginate(
github.rest.actions.listWorkflowRunArtifacts, {owner, repo, run_id});
if (!artifacts.length) {
return core.error(`No artifacts found`);
}
let body = `Download the artifacts for this pull request:\n`;
for (const art of artifacts) {
body += `\n* [${art.name}.zip](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
}
core.info("Review thread message body:", body);
for (const pr of pull_requests) {
await upsertComment(owner, repo, pr.number,
"nightly-link", body);
}
Binary file modified GameData/ProceduralFairings/Assets/fairing.mu
Binary file not shown.
16 changes: 15 additions & 1 deletion GameData/ProceduralFairings/Parts/Payload/fairing_sides.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ PART
MODEL
{
model = ProceduralFairings/Assets/fairing
}
}

scale = 1.0
rescaleFactor = 1.0
Expand Down Expand Up @@ -74,6 +74,20 @@ PART
name = ProceduralFairingDecoupler
}

MODULE
{
name = ModuleAnimateGeneric
animationName = Actuate
startEventGUIName = Open Petal
endEventGUIName = Close Petal
actionGUIName = Toggle Petal
allowDeployLimit = true
revClampDirection = true
revClampSpeed = false
revClampPercent = false
deployPercent = 50
}

MODULE
{
name = ModulePartVariants
Expand Down
7 changes: 7 additions & 0 deletions GameData/ProceduralFairings/changelog.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
KERBALCHANGELOG
{
modName = Procedural Fairings
license = CC-BY 4.0
author = KSP-RO team
website = github.com/KSP-RO/ProceduralFairings
}
Loading

0 comments on commit 7508457

Please sign in to comment.