fix(ci): address critical workflow and validation issues
Addresses code review feedback on PR #418: CRITICAL FIXES: 1. Workflow trigger: Changed from release:published to push:tags - Enables "tag and publish in one step" workflow as intended - Automatically creates GitHub release on tag push - Removed redundant if condition (filtering now via trigger) - Added prerelease detection based on tag (-alpha, -beta, -rc) 2. Server path: Explicitly pass server_dir to make command - Fixes path mismatch between local (../../server) and CI - Uses absolute path: server_dir=${{ github.workspace }}/server - Prevents signing failures in GitHub Actions 3. Regex validation: Added test script for commitizen patterns - Validates scope filtering works correctly - Tests all three components: mcp, helm, astrolabe - Tests unscoped commits (default to mcp) - Tests breaking changes and invalid commits - Location: scripts/test-commitizen-scopes.sh WORKFLOW IMPROVEMENTS: - Release creation now automatic on tag push - Better step naming for clarity - Consistent prerelease handling across GitHub and App Store - Explicit server_dir prevents reliance on fragile relative paths All 16 test cases pass for scope filtering patterns.
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
name: Build and Publish Astrolabe App Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
push:
|
||||
tags:
|
||||
- 'astrolabe-v*'
|
||||
|
||||
env:
|
||||
APP_NAME: astrolabe
|
||||
@@ -11,8 +12,6 @@ env:
|
||||
jobs:
|
||||
build-and-publish:
|
||||
runs-on: ubuntu-latest
|
||||
# Only run on Astrolabe releases
|
||||
if: startsWith(github.ref, 'refs/tags/astrolabe-v')
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -66,15 +65,17 @@ jobs:
|
||||
|
||||
- name: Build app store package
|
||||
working-directory: ${{ env.APP_DIR }}
|
||||
run: make appstore
|
||||
run: make appstore server_dir=${{ github.workspace }}/server
|
||||
|
||||
- name: Attach tarball to GitHub release
|
||||
- name: Create GitHub release and attach tarball
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.APP_DIR }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
|
||||
asset_name: ${{ env.APP_NAME }}-${{ steps.tag.outputs.TAG }}.tar.gz
|
||||
tag: ${{ github.ref }}
|
||||
release_name: Astrolabe ${{ steps.tag.outputs.TAG }}
|
||||
prerelease: ${{ contains(steps.tag.outputs.TAG, '-alpha') || contains(steps.tag.outputs.TAG, '-beta') || contains(steps.tag.outputs.TAG, '-rc') }}
|
||||
|
||||
- name: Upload to Nextcloud App Store
|
||||
uses: R0Wi/nextcloud-appstore-push-action@v1.0.6
|
||||
@@ -83,4 +84,4 @@ jobs:
|
||||
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
||||
download_url: ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.ref_name }}/${{ env.APP_NAME }}-${{ steps.tag.outputs.TAG }}.tar.gz
|
||||
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
nightly: ${{ github.event.release.prerelease }}
|
||||
nightly: ${{ contains(steps.tag.outputs.TAG, '-alpha') || contains(steps.tag.outputs.TAG, '-beta') || contains(steps.tag.outputs.TAG, '-rc') }}
|
||||
|
||||
Reference in New Issue
Block a user