Task - Release #44
This file contains hidden or 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: Task - Release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Release version' | |
| required: true | |
| default: '1.0.0' | |
| title: | |
| description: 'Title' | |
| required: true | |
| default: 'New Version' | |
| changelog: | |
| description: 'Changelog' | |
| required: true | |
| default: '- Several improvements' | |
| issue: | |
| description: 'Launcher issue' | |
| required: true | |
| default: '-1' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| prepare-version-files: | |
| name: Prepare files for release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update version | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8')); | |
| packageJson.version = '${{ github.event.inputs.version }}'; | |
| fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, 2)); | |
| - name: Commit updated package.json and dist directory | |
| uses: EndBug/add-and-commit@v9 | |
| with: | |
| add: './build/ ./package.json' | |
| committer_name: GitHub Actions | |
| committer_email: actions@github.com | |
| default_author: user_info | |
| message: 'gh-action: updated compiled files and bumped version to ${{ github.event.inputs.version }}' | |
| prepare-compiled-files: | |
| name: Update compiled files | |
| runs-on: ubuntu-latest | |
| needs: prepare-version-files | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Pull latest changes | |
| run: | | |
| git config --global user.email "efraespada@gmail.com" | |
| git config --global user.name "Efra Espada" | |
| git pull --no-ff --no-edit | |
| - name: Set up Node.js 20 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20.x' | |
| - name: Install Dependencies | |
| run: npm install | |
| - name: Build Files | |
| run: npm run build | |
| - name: Force add build directory | |
| run: git add -f ./build/ | |
| - name: Commit updated dist directory | |
| uses: EndBug/add-and-commit@v9 | |
| with: | |
| committer_name: GitHub Actions | |
| committer_email: actions@github.com | |
| default_author: user_info | |
| message: 'gh-action: updated compiled files' | |
| compile-vector-server: | |
| name: Compile vector server | |
| runs-on: [self-hosted, macOS, ARM64] | |
| needs: prepare-compiled-files | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Set up DOCKER_HOST as output | |
| id: docker-env | |
| run: | | |
| echo "docker_host=unix://${HOME}/.orbstack/run/docker.sock" >> $GITHUB_OUTPUT | |
| - name: Git Board Flow - Compile Vector Server | |
| uses: ./ | |
| env: | |
| DOCKER_HOST: ${{ steps.docker-env.outputs.docker_host }} | |
| RUNNER_TEMP: ${{ github.workspace }}/.runner_temp | |
| with: | |
| debug: ${{ vars.DEBUG }} | |
| single-action: 'compile_vector_server' | |
| single-action-version: '${{ github.event.inputs.version }}' | |
| single-action-title: '${{ github.event.inputs.title }}' | |
| single-action-changelog: '${{ github.event.inputs.changelog }}' | |
| single-action-issue: '${{ github.event.inputs.issue }}' | |
| token: ${{ secrets.PAT }} | |
| classic-token: ${{ secrets.CLASSIC_TOKEN }} | |
| tag: | |
| name: Publish version | |
| runs-on: ubuntu-latest | |
| needs: [ prepare-compiled-files, compile-vector-server ] | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Git Board Flow - Create Tag | |
| uses: ./ | |
| if: ${{ success() }} | |
| with: | |
| debug: ${{ vars.DEBUG }} | |
| single-action: 'create_tag' | |
| single-action-issue: '${{ github.event.inputs.issue }}' | |
| single-action-version: '${{ github.event.inputs.version }}' | |
| token: ${{ secrets.PAT }} | |
| - name: Git Board Flow - Create Release | |
| uses: ./ | |
| if: ${{ success() }} | |
| with: | |
| debug: ${{ vars.DEBUG }} | |
| single-action: 'create_release' | |
| single-action-issue: '${{ github.event.inputs.issue }}' | |
| single-action-version: '${{ github.event.inputs.version }}' | |
| single-action-title: '${{ github.event.inputs.title }}' | |
| single-action-changelog: '${{ github.event.inputs.changelog }}' | |
| token: ${{ secrets.PAT }} | |
| - name: Git Board Flow - Publish Github Action Version | |
| uses: ./ | |
| if: ${{ success() }} | |
| with: | |
| debug: ${{ vars.DEBUG }} | |
| single-action: 'publish_github_action' | |
| single-action-issue: '${{ github.event.inputs.issue }}' | |
| single-action-version: '${{ github.event.inputs.version }}' | |
| token: ${{ secrets.PAT }} | |
| - name: Git Board Flow - Deploy success notification | |
| uses: ./ | |
| if: ${{ success() }} | |
| with: | |
| debug: ${{ vars.DEBUG }} | |
| single-action: 'deployed_action' | |
| single-action-issue: '${{ github.event.inputs.issue }}' | |
| openrouter-api-key: ${{ secrets.OPEN_ROUTER_API_KEY }} | |
| openrouter-model: ${{ vars.OPEN_ROUTER_MODEL }} | |
| token: ${{ secrets.PAT }} |