mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-28 13:20:40 +00:00
Cleanup Workflows
This commit is contained in:
Generated
-164
@@ -1,164 +0,0 @@
|
|||||||
name: Close Discussion on PR Merge
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
discussions: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-discussion:
|
|
||||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set Up Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "20"
|
|
||||||
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: npm install zx @octokit/graphql
|
|
||||||
|
|
||||||
- name: Close Discussion
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
GITHUB_SHA: ${{ github.sha }}
|
|
||||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
||||||
run: |
|
|
||||||
npx zx << 'EOF'
|
|
||||||
import { graphql } from "@octokit/graphql";
|
|
||||||
|
|
||||||
(async function () {
|
|
||||||
try {
|
|
||||||
const token = process.env.GITHUB_TOKEN;
|
|
||||||
const commitSha = process.env.GITHUB_SHA;
|
|
||||||
const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/");
|
|
||||||
|
|
||||||
if (!token || !commitSha || !owner || !repo) {
|
|
||||||
console.log("Missing required environment variables.");
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const graphqlWithAuth = graphql.defaults({
|
|
||||||
headers: { authorization: `Bearer ${token}` },
|
|
||||||
});
|
|
||||||
|
|
||||||
// Find PR from commit SHA
|
|
||||||
const searchQuery = `
|
|
||||||
query($owner: String!, $repo: String!, $sha: GitObjectID!) {
|
|
||||||
repository(owner: $owner, name: $repo) {
|
|
||||||
object(oid: $sha) {
|
|
||||||
... on Commit {
|
|
||||||
associatedPullRequests(first: 1) {
|
|
||||||
nodes {
|
|
||||||
number
|
|
||||||
body
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const prResult = await graphqlWithAuth(searchQuery, {
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
sha: commitSha,
|
|
||||||
});
|
|
||||||
|
|
||||||
const pr = prResult.repository.object.associatedPullRequests.nodes[0];
|
|
||||||
if (!pr) {
|
|
||||||
console.log("No PR found for this commit.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const prNumber = pr.number;
|
|
||||||
const prBody = pr.body;
|
|
||||||
|
|
||||||
const match = prBody.match(/#(\d+)/);
|
|
||||||
if (!match) {
|
|
||||||
console.log("No discussion ID found in PR body.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const discussionNumber = match[1];
|
|
||||||
console.log(`Extracted Discussion Number: ${discussionNumber}`);
|
|
||||||
|
|
||||||
// Fetch GraphQL discussion ID
|
|
||||||
const discussionQuery = `
|
|
||||||
query($owner: String!, $repo: String!, $number: Int!) {
|
|
||||||
repository(owner: $owner, name: $repo) {
|
|
||||||
discussion(number: $number) {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
let discussionQLId;
|
|
||||||
try {
|
|
||||||
const discussionResponse = await graphqlWithAuth(discussionQuery, {
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
number: parseInt(discussionNumber, 10),
|
|
||||||
});
|
|
||||||
|
|
||||||
discussionQLId = discussionResponse.repository.discussion.id;
|
|
||||||
if (!discussionQLId) {
|
|
||||||
console.log("Failed to fetch discussion GraphQL ID.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Discussion not found or error occurred while fetching discussion:", error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Post comment
|
|
||||||
const commentMutation = `
|
|
||||||
mutation($discussionId: ID!, $body: String!) {
|
|
||||||
addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
|
|
||||||
comment { id body }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const commentResponse = await graphqlWithAuth(commentMutation, {
|
|
||||||
discussionId: discussionQLId,
|
|
||||||
body: `Merged with PR #${prNumber}`,
|
|
||||||
});
|
|
||||||
|
|
||||||
const commentId = commentResponse.addDiscussionComment.comment.id;
|
|
||||||
if (!commentId) {
|
|
||||||
console.log("Failed to post the comment.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`Comment Posted Successfully! Comment ID: ${commentId}`);
|
|
||||||
|
|
||||||
// Mark comment as answer
|
|
||||||
const markAnswerMutation = `
|
|
||||||
mutation($id: ID!) {
|
|
||||||
markDiscussionCommentAsAnswer(input: { id: $id }) {
|
|
||||||
discussion { id title }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
await graphqlWithAuth(markAnswerMutation, { id: commentId });
|
|
||||||
|
|
||||||
console.log("Comment marked as answer successfully!");
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error:", error);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
EOF
|
|
||||||
-38
@@ -1,38 +0,0 @@
|
|||||||
name: Build and Publish Docker Image
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- '.github/runner/docker/**'
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
|
||||||
runs-on: ubuntu-latest #To ensure it always builds we use the github runner with all the right tooling
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Log in to GHCR
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build Docker image
|
|
||||||
run: |
|
|
||||||
repo_name=${{ github.repository }} # Get repository name
|
|
||||||
repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]') # Convert to lowercase
|
|
||||||
docker build -t ghcr.io/$repo_name_lower/gh-runner-self:latest -f .github/runner/docker/gh-runner-self.dockerfile .
|
|
||||||
|
|
||||||
- name: Push Docker image to GHCR
|
|
||||||
run: |
|
|
||||||
repo_name=${{ github.repository }} # Get repository name
|
|
||||||
repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]') # Convert to lowercase
|
|
||||||
docker push ghcr.io/$repo_name_lower/gh-runner-self:latest
|
|
||||||
Generated
-29
@@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
name: Delete JSON date PR Branch
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [closed]
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
delete_branch:
|
|
||||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout the code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Delete PR Update Branch
|
|
||||||
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'pr-update-json-')
|
|
||||||
run: |
|
|
||||||
PR_BRANCH="${{ github.event.pull_request.head.ref }}"
|
|
||||||
echo "Deleting branch $PR_BRANCH..."
|
|
||||||
|
|
||||||
# Avoid deleting the default branch (e.g., main)
|
|
||||||
if [[ "$PR_BRANCH" != "main" ]]; then
|
|
||||||
git push origin --delete "$PR_BRANCH"
|
|
||||||
else
|
|
||||||
echo "Skipping deletion of the main branch"
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user