mirror of
https://github.com/fmhy/FMHY-SafeGuard.git
synced 2026-03-11 08:55:40 +00:00
106 lines
3.5 KiB
YAML
106 lines
3.5 KiB
YAML
name: Release Extensions
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*.*.*'
|
|
workflow_dispatch: # Allows manual triggering from GitHub UI
|
|
|
|
permissions:
|
|
contents: write # Required to write contents and create releases
|
|
|
|
jobs:
|
|
build-and-release:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y zip jq
|
|
|
|
# Step to get the version, or use a default if no tag exists (manual trigger)
|
|
- name: Get Version from Tag or Default
|
|
id: get_version
|
|
run: |
|
|
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
|
|
VERSION=${GITHUB_REF#refs/tags/}
|
|
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
|
else
|
|
echo "No tag found, using default version"
|
|
echo "VERSION=dev-version" >> $GITHUB_ENV
|
|
fi
|
|
|
|
- name: Assemble Release Notes
|
|
id: release_notes
|
|
run: |
|
|
VERSION=${{ env.VERSION }}
|
|
echo "## $VERSION" > release_notes.md
|
|
echo "" >> release_notes.md
|
|
if [[ "$VERSION" != "dev-version" ]]; then
|
|
awk "/^## \\[$VERSION\\]/, /^## \\[/" CHANGELOG.md >> release_notes.md || cat RELEASE.HEAD.md >> release_notes.md
|
|
else
|
|
echo "Manual run, no release notes extracted from CHANGELOG.md" >> release_notes.md
|
|
cat RELEASE.HEAD.md >> release_notes.md
|
|
fi
|
|
|
|
- name: Create GitHub Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ env.VERSION }}
|
|
release_name: ${{ env.VERSION }}
|
|
body_path: release_notes.md
|
|
draft: false
|
|
prerelease: false
|
|
|
|
- name: Build Chrome Extension
|
|
run: |
|
|
mkdir -p dist/chromium
|
|
cp -r src/* dist/chromium/
|
|
cp platform/chromium/manifest.json dist/chromium/manifest.json
|
|
cd dist/chromium
|
|
zip -r ../FMHY-SafeGuard_${{ env.VERSION }}.chromium.zip ./*
|
|
cd ../..
|
|
|
|
- name: Build Firefox Extension
|
|
run: |
|
|
mkdir -p dist/firefox
|
|
cp -r src/* dist/firefox/
|
|
cp platform/firefox/manifest.json dist/firefox/manifest.json
|
|
cd dist/firefox
|
|
zip -r ../FMHY-SafeGuard_${{ env.VERSION }}.firefox.zip ./*
|
|
cd ..
|
|
mv FMHY-SafeGuard_${{ env.VERSION }}.firefox.zip FMHY-SafeGuard_${{ env.VERSION }}.firefox.xpi
|
|
|
|
- name: Upload Chrome Extension
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: dist/FMHY-SafeGuard_${{ env.VERSION }}.chromium.zip
|
|
asset_name: FMHY-SafeGuard_${{ env.VERSION }}.chromium.zip
|
|
asset_content_type: application/zip
|
|
|
|
- name: Upload Firefox Extension
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: dist/FMHY-SafeGuard_${{ env.VERSION }}.firefox.xpi
|
|
asset_name: FMHY-SafeGuard_${{ env.VERSION }}.firefox.xpi
|
|
asset_content_type: application/x-xpinstall
|