-
-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add workflow to release github-action (#1543)
* added workflow * updated workflow * added a manual workflow * updated workflow * deleted manual workflow * updated workflow * deleted act script * updated git config inside github workflow * updated npm script in github workflow * Updated workflow trigger at pre release * added new plugin for semantic release of project * updated plugin
- Loading branch information
1 parent
4627ea5
commit 8be9928
Showing
4 changed files
with
121 additions
and
2 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,6 @@ on: | |
- published | ||
|
||
jobs: | ||
|
||
publish-docker: | ||
name: Generating Docker | ||
runs-on: ubuntu-latest | ||
|
@@ -56,3 +55,45 @@ jobs: | |
pass: ${{ secrets.DOCKER_PASSWORD }} | ||
slug: asyncapi/cli | ||
description: CLI to work with your AsyncAPI files | ||
|
||
publish-action-docker: | ||
name: Release github action for cli and update version in action.yml | ||
runs-on: ubuntu-latest | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: master | ||
|
||
- name: Get version without v character | ||
id: version | ||
run: | | ||
VERSION=${{github.event.release.tag_name}} | ||
VERSION_WITHOUT_V=${VERSION:1} | ||
echo "value=${VERSION_WITHOUT_V}" >> $GITHUB_OUTPUT | ||
- name: Release to Docker | ||
run: | | ||
echo ${{env.DOCKER_PASSWORD}} | docker login -u ${{env.DOCKER_USERNAME}} --password-stdin | ||
npm run action:docker:build | ||
docker tag asyncapi/github-action-for-cli:latest asyncapi/github-action-for-cli:${{ steps.version.outputs.value }} | ||
docker push asyncapi/github-action-for-cli:${{ steps.version.outputs.value }} | ||
docker push asyncapi/github-action-for-cli:latest | ||
- name: Change directory to github-action | ||
run: | | ||
cd github-action/ | ||
ls -la | ||
- uses: meeDamian/[email protected] | ||
with: | ||
user: ${{ env.DOCKER_USERNAME }} | ||
pass: ${{ env.DOCKER_PASSWORD }} | ||
slug: asyncapi/github-action-for-cli | ||
description: Github action for AsyncAPI CLI | ||
|
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: 'Generator, Validator, Converter and others - all in one for your AsyncAPI docs' | ||
description: 'Use this action to generate docs or code from your AsyncAPI document. Use default templates or provide your custom ones.' | ||
inputs: | ||
cli_version: | ||
description: 'Version of AsyncAPI CLI to be used. This is only needed if you want to test with a specific version of AsyncAPI CLI. Default is latest which is also the recommended option.' | ||
required: false | ||
default: '' | ||
command: | ||
description: 'Command to run. Available commands in action :- generate, validate, convert, optimize and custom. Default is generate. For custom command, provide the whole command as input. List of available commands can be found in https://www.asyncapi.com/docs/tools/cli/usage.' | ||
required: false | ||
default: 'generate' | ||
filepath: | ||
description: 'Path to AsyncAPI document. This input is required if command is set to generate, validate, convert or optimize. Default is ./asyncapi.yaml' | ||
required: false | ||
default: 'asyncapi.yml' | ||
template: | ||
description: 'Template for the generator. Official templates are listed here https://github.com/search?q=topic%3Aasyncapi+topic%3Agenerator+topic%3Atemplate. You can pass template as npm package, url to git repository, link to tar file or local template.' | ||
default: '@asyncapi/[email protected]' | ||
required: false | ||
language: | ||
description: 'Language of the generated code. This input is required if you want to generate models. List of available languages can be found in https://www.asyncapi.com/docs/tools/cli/usage#asyncapi-generate-models-language-file' | ||
required: false | ||
default: '' | ||
output: | ||
description: 'Directory where to put the generated files. Can be used only with generate or convert commands. Default is output.' | ||
required: false | ||
default: 'output' | ||
parameters: | ||
description: 'The command that you use might support and even require specific parameters to be passed to the CLI for the generation. Template parameters should be preceded by -p' | ||
required: false | ||
default: '' | ||
custom_command: | ||
description: 'Custom command to be run. This input is required if command is set to custom.' | ||
required: false | ||
default: '' | ||
|
||
runs: | ||
using: 'docker' | ||
# This is the image that will be used to run the action. | ||
# IMPORTANT: The version has to be changed manually in your PRs. | ||
image: 'docker://asyncapi/github-action-for-cli:${ version }' | ||
args: | ||
- ${{ inputs.cli_version }} | ||
- ${{ inputs.command }} | ||
- ${{ inputs.filepath }} | ||
- ${{ inputs.template }} | ||
- ${{ inputs.language }} | ||
- ${{ inputs.output }} | ||
- ${{ inputs.parameters }} | ||
- ${{ inputs.custom_command }} | ||
|
||
branding: | ||
icon: 'file-text' | ||
color: purple |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
const fs = require('fs'); | ||
const path = require('path'); | ||
|
||
module.exports = { | ||
prepare: async (pluginConfig, context) => { | ||
const { nextRelease } = context; | ||
const version = nextRelease.version; | ||
|
||
const templatePath = path.resolve(__dirname, '../../', 'action-template.yml'); | ||
const outputPath = path.resolve(__dirname, '../../', 'action.yml'); | ||
|
||
try { | ||
const templateContent = fs.readFileSync(templatePath, 'utf8'); | ||
const updatedContent = templateContent.replace(/\${ version }/g, version); | ||
fs.writeFileSync(outputPath, updatedContent, 'utf8'); | ||
console.log(`Updated action.yml with version ${version}`); | ||
} catch (error) { | ||
console.error('Error updating action.yml:', error); | ||
throw error; | ||
} | ||
} | ||
}; |