diff --git a/.gitea/workflows/quality.yaml b/.gitea/workflows/quality.yaml deleted file mode 100644 index 9cec709..0000000 --- a/.gitea/workflows/quality.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: Code Quality Check - -on: - push: - branches: - - '*' - -jobs: - quality: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Set up Node.js - uses: actions/setup-node@v2 - with: - node-version: '22' - - - name: Install dependencies - run: npm ci - - - name: Run Biome - run: npm run quality-check - - quality-failed-webhook: - needs: quality - runs-on: ubuntu-latest - if: ${{ needs.quality.outputs.status == 'failure' }} - steps: - - name: Send webhook - run: | - QUALITY_CHECK_GROUP="Laterano CI/CD" - QUALITY_CHECK_TITLE="Quality Check Failed" - QUALITY_CHECK_MESSAGE="Quality check failed for commit ${{ gitea.sha }} in ${{ gitea.repository }}" - - # URL-encode the message - ENCODED_GROUP=$(echo "$MSG_GROUP" sed 's/%/%25/g; s/ /%20/g; s/\//%2F/g; s/\?/%3F/g; s/&/%26/g') - ENCODED_TITLE=$(echo "$QUALITY_CHECK_TITLE" | sed 's/%/%25/g' | sed 's/ /%20/g' | sed 's/!/%21/g' | sed 's/"/%22/g' | sed 's/#/%23/g' | sed 's/\$/%24/g' | sed 's/&/%26/g' | sed 's/'"'"'/%27/g' | sed 's/(/%28/g' | sed 's/)/%29/g' | sed 's/\*/%2A/g' | sed 's/+/%2B/g' | sed 's/,/%2C/g' | sed 's/\//%2F/g' | sed 's/:/%3A/g' | sed 's/;/%3B/g' | sed 's/=/%3D/g' | sed 's/?/%3F/g' | sed 's/@/%40/g') - ENCODED_MESSAGE=$(echo "$QUALITY_CHECK_MESSAGE" | sed 's/%/%25/g' | sed 's/ /%20/g' | sed 's/!/%21/g' | sed 's/"/%22/g' | sed 's/#/%23/g' | sed 's/\$/%24/g' | sed 's/&/%26/g' | sed 's/'"'"'/%27/g' | sed 's/(/%28/g' | sed 's/)/%29/g' | sed 's/\*/%2A/g' | sed 's/+/%2B/g' | sed 's/,/%2C/g' | sed 's/\//%2F/g' | sed 's/:/%3A/g' | sed 's/;/%3B/g' | sed 's/=/%3D/g' | sed 's/?/%3F/g' | sed 's/@/%40/g') - - echo "Webhook URL:" - echo "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" - - curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" diff --git a/.gitea/workflows/publish.yaml b/.gitea/workflows/workflow.yaml similarity index 70% rename from .gitea/workflows/publish.yaml rename to .gitea/workflows/workflow.yaml index c52ec69..69fab3d 100644 --- a/.gitea/workflows/publish.yaml +++ b/.gitea/workflows/workflow.yaml @@ -3,13 +3,51 @@ name: Publish to npm on: push: branches: - - main - - dev + - '*' jobs: + quality: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '22' + - name: Install dependencies + run: npm ci + - name: Run Biome + run: npm run quality-check + if: always() + outputs: + status: ${{ job.status }} + + quality-failed-webhook: + needs: quality + runs-on: ubuntu-latest + if: ${{ needs.quality.outputs.status == 'failure' }} + steps: + - name: Send webhook + run: | + QUALITY_CHECK_GROUP="Laterano CI/CD" + QUALITY_CHECK_TITLE="Quality Check Failed" + QUALITY_CHECK_MESSAGE="Quality check failed for commit ${{ gitea.sha }} in ${{ gitea.repository }}" + + # URL-encode the message + ENCODED_GROUP=$(echo "$MSG_GROUP" sed 's/%/%25/g; s/ /%20/g; s/\//%2F/g; s/\?/%3F/g; s/&/%26/g') + ENCODED_TITLE=$(echo "$QUALITY_CHECK_TITLE" | sed 's/%/%25/g' | sed 's/ /%20/g' | sed 's/!/%21/g' | sed 's/"/%22/g' | sed 's/#/%23/g' | sed 's/\$/%24/g' | sed 's/&/%26/g' | sed 's/'"'"'/%27/g' | sed 's/(/%28/g' | sed 's/)/%29/g' | sed 's/\*/%2A/g' | sed 's/+/%2B/g' | sed 's/,/%2C/g' | sed 's/\//%2F/g' | sed 's/:/%3A/g' | sed 's/;/%3B/g' | sed 's/=/%3D/g' | sed 's/?/%3F/g' | sed 's/@/%40/g') + ENCODED_MESSAGE=$(echo "$QUALITY_CHECK_MESSAGE" | sed 's/%/%25/g' | sed 's/ /%20/g' | sed 's/!/%21/g' | sed 's/"/%22/g' | sed 's/#/%23/g' | sed 's/\$/%24/g' | sed 's/&/%26/g' | sed 's/'"'"'/%27/g' | sed 's/(/%28/g' | sed 's/)/%29/g' | sed 's/\*/%2A/g' | sed 's/+/%2B/g' | sed 's/,/%2C/g' | sed 's/\//%2F/g' | sed 's/:/%3A/g' | sed 's/;/%3B/g' | sed 's/=/%3D/g' | sed 's/?/%3F/g' | sed 's/@/%40/g') + + echo "Webhook URL:" + echo "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" + + curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" + publish: runs-on: ubuntu-latest needs: quality + if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' }} steps: - name: Checkout repository uses: actions/checkout@v2 @@ -32,7 +70,7 @@ jobs: elif [ "${{ gitea.ref }}" == "refs/heads/dev" ]; then echo "PACKAGE_NAME=@astrian/laterano-dev" >> $GITEA_ENV echo "ACCESS_LEVEL=restricted" >> $GITEA_ENV - fi + fi - name: Update package.json for dev releases if: GITEA.ref == 'refs/heads/dev' @@ -40,13 +78,13 @@ jobs: jq --arg name "@astrian/laterano-dev" '.name=$name' package.json > temp.json && mv temp.json package.json jq --arg version "0.0.0-dev.$(date +%s)" '.version=$version' package.json > temp.json && mv temp.json package.json echo VERSION_CODE=$(jq -r '.version' package.json) >> $GITEA_ENV - echo PACKAGE_NAME="@astrian/laterano-dev" >> $GITEA_ENV + echo PACKAGE_NAME="@astrian/laterano-dev" >> $GITEA_ENV - name: Get version code if: GITEA.ref == 'refs/heads/main' run: | echo VERSION_CODE=$(jq -r '.version' package.json) >> $GITEA_ENV - echo PACKAGE_NAME="laterano" >> $GITEA_ENV + echo PACKAGE_NAME="laterano" >> $GITEA_ENV - name: Publish to npm run: npm publish --access $ACCESS_LEVEL @@ -68,7 +106,7 @@ jobs: echo "Webhook URL:" echo "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" - curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" + curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" publish-failed-webhook: needs: publish @@ -88,4 +126,4 @@ jobs: ENCODED_TITLE=$(echo "$MSG_TITLE" | sed 's/%/%25/g' | sed 's/ /%20/g' | sed 's/!/%21/g' | sed 's/"/%22/g' | sed 's/#/%23/g' | sed 's/\$/%24/g' | sed 's/&/%26/g' | sed 's/'"'"'/%27/g' | sed 's/(/%28/g' | sed 's/)/%29/g' | sed 's/\*/%2A/g' | sed 's/+/%2B/g' | sed 's/,/%2C/g' | sed 's/\//%2F/g' | sed 's/:/%3A/g' | sed 's/;/%3B/g' | sed 's/=/%3D/g' | sed 's/?/%3F/g' | sed 's/@/%40/g') echo "Webhook URL:" echo "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" - curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" + curl -X GET "https://bark.nas.astrian.moe/${{ secrets.BARK_TOKEN }}/${ENCODED_TITLE}/${ENCODED_MESSAGE}?group=${ENCODED_GROUP}" \ No newline at end of file