Absolute Roleplay [Testing] (#4728) #4630
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: Deployment | |
on: [push, workflow_dispatch] | |
concurrency: | |
group: plogon-deploy | |
cancel-in-progress: true | |
jobs: | |
run-plogon: | |
name: Build Plugins | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get Pull Request data | |
uses: actions/github-script@v7 | |
id: get_pr_data | |
with: | |
script: | | |
const pr = ( | |
await github.rest.repos.listPullRequestsAssociatedWithCommit({ | |
commit_sha: context.sha, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}) | |
).data[0]; | |
const reviews = ( | |
await github.rest.pulls.listReviews({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: pr.number, | |
}) | |
).data; | |
// Filter reviews for approved ones | |
const approvedReviews = reviews.filter(review => review.state === 'APPROVED'); | |
if (approvedReviews.length === 0) { | |
throw new Error("Pull request has no approved reviews."); | |
} | |
// Setting the output explicitly | |
return { | |
number: pr.number, | |
title: pr.title, | |
first_approved_reviewer: approvedReviews[0].user.login | |
}; | |
outputs: result | |
- name: Checkout manifests | |
uses: actions/checkout@v3 | |
with: | |
repository: goatcorp/DalamudPluginsD17 | |
path: manifests | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup Difftastic | |
run: | | |
wget https://github.com/Wilfred/difftastic/releases/latest/download/difft-x86_64-unknown-linux-gnu.tar.gz | |
tar -xzf difft-x86_64-unknown-linux-gnu.tar.gz | |
sudo mv difft /usr/local/bin/difft | |
sudo chmod +x /usr/local/bin/difft | |
difft --version | |
- name: Checkout Plogon | |
uses: actions/checkout@v3 | |
with: | |
repository: goatcorp/Plogon | |
#ref: V1.0.6 | |
path: Plogon | |
- name: Checkout Dist | |
uses: actions/checkout@v3 | |
with: | |
repository: goatcorp/PluginDistD17 | |
path: output | |
ssh-key: ${{ secrets.DIST_SSH_KEY }} | |
persist-credentials: true | |
ref: main | |
- name: Create required folders | |
run: | | |
mkdir artifacts | |
mkdir work | |
- name: Cache docker image | |
uses: actions/cache@v3 | |
env: | |
cache-name: ${{ secrets.EXTENDED_IMAGE_LINK }} | |
with: | |
path: ~/.plogon_cache | |
key: cache-${{ env.cache-name }} | |
- name: Run Plogon | |
working-directory: Plogon/Plogon | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
PAC_DISCORD_WEBHOOK: ${{ secrets.PAC_DISCORD_WEBHOOK }} | |
EXTENDED_IMAGE_LINK: ${{ secrets.EXTENDED_IMAGE_LINK }} | |
PLOGON_SECRETS_PK: ${{ secrets.PLOGON_SECRETS_PK }} | |
PLOGON_SECRETS_PK_PASSWORD: ${{ secrets.PLOGON_SECRETS_PK_PASSWORD }} | |
PLOGON_ACTOR: ${{ fromJson(steps.get_pr_data.outputs.result).first_approved_reviewer }} | |
XLWEB_KEY: ${{ secrets.XLWEB_KEY }} | |
PLOGON_S3_ACCESSKEY: ${{ secrets.PLOGON_S3_ACCESSKEY }} | |
PLOGON_S3_SECRET: ${{ secrets.PLOGON_S3_SECRET }} | |
PLOGON_S3_REGION: ${{ secrets.PLOGON_S3_REGION }} | |
run: | | |
dotnet run -- \ | |
--manifest-folder="${{ github.workspace }}/manifests" \ | |
--output-folder="${{ github.workspace }}/output" \ | |
--work-folder="${{ github.workspace }}/work" \ | |
--static-folder="${{ github.workspace }}/Plogon/Plogon/static" \ | |
--artifact-folder="${{ github.workspace }}/artifacts" \ | |
--build-overrides-file="${{ github.workspace }}/manifests/overrides.toml" \ | |
--ci --mode=Commit --build-all | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: plugin-artifact | |
path: artifacts | |
- name: Commit files | |
continue-on-error: true | |
run: | | |
cd ${{ github.workspace }}/output | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
git add . | |
git commit -m "Update distribute (${{ github.sha }})" | |
- name: Push plugin dist | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
directory: output | |
repository: goatcorp/PluginDistD17 | |
ssh: true | |
- name: Signal XLWeb commit | |
run: | | |
curl --request POST \ | |
--url https://kamori.goats.dev/Plogon/CommitStagedPlugins \ | |
--header 'X-XL-Key: ${{ secrets.XLWEB_KEY }}' |