You've already forked gitea-release-action
mirror of
https://gitea.com/actions/gitea-release-action.git
synced 2025-07-01 08:03:11 +07:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
8b3b4f4429 |
51
.github/workflows/publish.yml
vendored
51
.github/workflows/publish.yml
vendored
@ -1,33 +1,36 @@
|
||||
name: Update Main Version
|
||||
run-name: Move ${{ github.event.inputs.major_version }} to ${{ github.event.inputs.target }}
|
||||
name: Build and Publish
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target:
|
||||
description: The tag or reference to use
|
||||
required: true
|
||||
major_version:
|
||||
type: choice
|
||||
description: The major version to update
|
||||
options:
|
||||
- v1
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
|
||||
jobs:
|
||||
tag:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: 构建
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Git config
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
- name: Tag new target
|
||||
run: git tag -f ${{ github.event.inputs.major_version }} ${{ github.event.inputs.target }}
|
||||
- name: Push new tag
|
||||
run: git push origin ${{ github.event.inputs.major_version }} --force
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: 'main'
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 16
|
||||
cache: 'npm'
|
||||
cache-dependency-path: package-lock.json
|
||||
- run: npm install -D
|
||||
- run: npm run package
|
||||
- run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
- run: |
|
||||
git add .
|
||||
git commit -m "Auto Build"
|
||||
- id: get_version
|
||||
uses: battila7/get-version-action@v2
|
||||
- run: git tag -f "v${{ steps.get_version.outputs.major }}"
|
||||
- run: git push -f --follow-tags
|
||||
|
22
LICENSE
22
LICENSE
@ -1,22 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 The Gitea Authors
|
||||
Copyright (c) 2023 akkuman
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
25
README.md
25
README.md
@ -6,19 +6,18 @@ An action to support publishing release to Gitea.
|
||||
|
||||
The following are optional as `step.with` keys
|
||||
|
||||
| Name | Type | Description |
|
||||
| ------------------ | ------- | --------------------------------------------------------------------------------------------------- |
|
||||
| `server_url` | String | the base url of the gitea API. Defaults to `github.server_url` |
|
||||
| `body` | String | Text communicating notable changes in this release |
|
||||
| `body_path` | String | Path to load text communicating notable changes in this release |
|
||||
| `draft` | Boolean | Creates a draft release. Defaults to false |
|
||||
| `prerelease` | Boolean | Indicator of whether or not is a prerelease |
|
||||
| `files` | String | Newline-delimited globs of paths to assets to upload for release |
|
||||
| `name` | String | Name of the release. Defaults to tag name |
|
||||
| `tag_name` | String | Name of a tag. Defaults to `github.ref_name` |
|
||||
| `repository` | String | Name of a target repository in `<owner>/<repo>` format. Defaults to `github.repository` |
|
||||
| `token` | String | Gitea Token. Defaults to `${{ github.token }}` |
|
||||
| `target_commitish` | String | Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. |
|
||||
| Name | Type | Description |
|
||||
| -------------- | ------- | ------------------------------------------------------------------------------------------- |
|
||||
| `server_url` | String | the base url of the gitea API. Defaults to `github.server_url` |
|
||||
| `body` | String | Text communicating notable changes in this release |
|
||||
| `body_path` | String | Path to load text communicating notable changes in this release |
|
||||
| `draft` | Boolean | Creates a draft release. Defaults to false |
|
||||
| `prerelease` | Boolean | Indicator of whether or not is a prerelease |
|
||||
| `files` | String | Newline-delimited globs of paths to assets to upload for release |
|
||||
| `name` | String | Name of the release. Defaults to tag name |
|
||||
| `tag_name` | String | Name of a tag. Defaults to `github.ref_name` |
|
||||
| `repository` | String | Name of a target repository in `<owner>/<repo>` format. Defaults to `github.repository` |
|
||||
| `token` | String | Gitea Token. Defaults to `${{ github.token }}` |
|
||||
|
||||
## Example usage
|
||||
|
||||
|
@ -35,9 +35,6 @@ inputs:
|
||||
description: "Gitea Token"
|
||||
required: false
|
||||
default: ${{ github.token }}
|
||||
target_commitish:
|
||||
description: 'Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA.'
|
||||
required: false
|
||||
runs:
|
||||
using: "node16"
|
||||
main: "dist/index.js"
|
||||
|
36
dist/index.js
vendored
36
dist/index.js
vendored
@ -40898,14 +40898,13 @@ async function run() {
|
||||
try {
|
||||
const server_url = core.getInput("server_url")
|
||||
const name = core.getInput("name")
|
||||
const body = getReleaseBody(core.getInput("body"), core.getInput("body_path"))
|
||||
const body = core.getInput("body")
|
||||
const tag_name = core.getInput("tag_name")
|
||||
const draft = Boolean(core.getInput("draft"))
|
||||
const prerelease = Boolean(core.getInput("prerelease"))
|
||||
const files = core.getInput("files")
|
||||
const repository = core.getInput("repository")
|
||||
const token = core.getInput("token")
|
||||
const target_commitish = core.getInput("target_commitish")
|
||||
|
||||
const [owner, repo] = (repository).split("/")
|
||||
|
||||
@ -40921,7 +40920,6 @@ async function run() {
|
||||
name: name,
|
||||
prerelease: prerelease,
|
||||
tag_name: tag_name,
|
||||
target_commitish: target_commitish,
|
||||
})
|
||||
const file_patterns = files.split('\n')
|
||||
const all_files = paths(file_patterns);
|
||||
@ -40951,36 +40949,12 @@ async function createOrGetRelease(client, owner, repo, body) {
|
||||
repo: repo,
|
||||
tag: body.tag_name,
|
||||
})
|
||||
const release_id = release.id;
|
||||
let target_commitish = release.target_commitish;
|
||||
if (body.target_commitish && body.target_commitish !== release.target_commitish) {
|
||||
console.log(`Updating commit from "${release.target_commitish}" to "${body.target_commitish}"`);
|
||||
}
|
||||
target_commitish = body.target_commitish;
|
||||
release = client.repository.repoEditRelease({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
id: release_id,
|
||||
body: {
|
||||
body: body.body || release.body,
|
||||
draft: body.draft !== undefined ? body.draft : release.draft,
|
||||
name: body.name || release.name,
|
||||
prerelease: body.prerelease !== undefined ? body.prerelease : release.prerelease,
|
||||
tag_name: body.tag_name || release.tag_name,
|
||||
target_commitish: body.target_commitish || release.target_commitish,
|
||||
}
|
||||
})
|
||||
return release
|
||||
} catch (error) {
|
||||
if (!(error instanceof dist/* ApiError */.MS) || error.status !== 404) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
let commit_message = "";
|
||||
if (body.target_commitish) {
|
||||
commit_message = ` using commit "${body.target_commitish}"`;
|
||||
}
|
||||
console.log(`👩🏭 Creating new GitHub release for tag ${body.tag_name}${commit_message}...`);
|
||||
let release = await client.repository.repoCreateRelease({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
@ -41041,13 +41015,7 @@ async function uploadFiles(client, owner, repo, release_id, all_files) {
|
||||
}
|
||||
}
|
||||
|
||||
function getReleaseBody(body, body_path) {
|
||||
return (
|
||||
(body_path && external_fs_.readFileSync(body_path).toString("utf8")) || body
|
||||
)
|
||||
}
|
||||
|
||||
run()
|
||||
run();
|
||||
|
||||
})();
|
||||
|
||||
|
26
main.js
26
main.js
@ -18,7 +18,6 @@ async function run() {
|
||||
const files = core.getInput("files")
|
||||
const repository = core.getInput("repository")
|
||||
const token = core.getInput("token")
|
||||
const target_commitish = core.getInput("target_commitish")
|
||||
|
||||
const [owner, repo] = (repository).split("/")
|
||||
|
||||
@ -34,7 +33,6 @@ async function run() {
|
||||
name: name,
|
||||
prerelease: prerelease,
|
||||
tag_name: tag_name,
|
||||
target_commitish: target_commitish,
|
||||
})
|
||||
const file_patterns = files.split('\n')
|
||||
const all_files = paths(file_patterns);
|
||||
@ -64,36 +62,12 @@ async function createOrGetRelease(client, owner, repo, body) {
|
||||
repo: repo,
|
||||
tag: body.tag_name,
|
||||
})
|
||||
const release_id = release.id;
|
||||
let target_commitish = release.target_commitish;
|
||||
if (body.target_commitish && body.target_commitish !== release.target_commitish) {
|
||||
console.log(`Updating commit from "${release.target_commitish}" to "${body.target_commitish}"`);
|
||||
}
|
||||
target_commitish = body.target_commitish;
|
||||
release = client.repository.repoEditRelease({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
id: release_id,
|
||||
body: {
|
||||
body: body.body || release.body,
|
||||
draft: body.draft !== undefined ? body.draft : release.draft,
|
||||
name: body.name || release.name,
|
||||
prerelease: body.prerelease !== undefined ? body.prerelease : release.prerelease,
|
||||
tag_name: body.tag_name || release.tag_name,
|
||||
target_commitish: body.target_commitish || release.target_commitish,
|
||||
}
|
||||
})
|
||||
return release
|
||||
} catch (error) {
|
||||
if (!(error instanceof gitea.ApiError) || error.status !== 404) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
let commit_message = "";
|
||||
if (body.target_commitish) {
|
||||
commit_message = ` using commit "${body.target_commitish}"`;
|
||||
}
|
||||
console.log(`👩🏭 Creating new GitHub release for tag ${body.tag_name}${commit_message}...`);
|
||||
let release = await client.repository.repoCreateRelease({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
|
Reference in New Issue
Block a user