mirror of
https://github.com/Mas0nShi/typoraCracker.git
synced 2023-07-10 13:41:20 +08:00
136 lines
5.3 KiB
YAML
136 lines
5.3 KiB
YAML
# This is a basic workflow that is manually triggered
|
|
|
|
name: Manual workflow
|
|
|
|
# Controls when the action will run. Workflow runs when manually triggered using the UI
|
|
# or API.
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '23 21 * * 1'
|
|
|
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
jobs:
|
|
# This workflow contains a single job called "greet"
|
|
check_version:
|
|
name: check the latest version
|
|
# The type of runner that the job will run on
|
|
runs-on: ubuntu-20.04
|
|
outputs:
|
|
RELEASE_VERSION: ${{ steps.getLatestRelease.outputs.RELEASE_VERSION }}
|
|
LATEST_VERSION: ${{ steps.checkVersion.outputs.LATEST_VERSION }}
|
|
steps:
|
|
- name: Get Latest Release
|
|
id: getLatestRelease
|
|
uses: actions/github-script@v3.1.0
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
const releaseResponse = await github.repos.getLatestRelease({
|
|
owner: 'Mas0nShi',
|
|
repo: 'typoraCracker',
|
|
})
|
|
const {
|
|
data: { tag_name: ver }
|
|
} = releaseResponse;
|
|
core.setOutput('RELEASE_VERSION', ver);
|
|
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v3
|
|
with:
|
|
python-version: '3.8' # Version range or exact version of a Python version to use, using SemVer's version range syntax
|
|
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
|
|
- name: install dependencies
|
|
run: |
|
|
sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo apt-get install innoextract -y
|
|
python3 -m pip install loguru
|
|
|
|
- name: Check Latest Version
|
|
id: checkVersion
|
|
run: |
|
|
python3 auto-analysis/check_version.py
|
|
output="$(cat auto-analysis/win/x64/LATEST_VERSION)"
|
|
echo "$output"
|
|
echo '::set-output name=LATEST_VERSION::$output'
|
|
|
|
create_release:
|
|
needs: check_version
|
|
runs-on: ubuntu-20.04
|
|
if: needs.check_version.outputs.RELEASE_VERSION != needs.check_version.outputs.LATEST_VERSION
|
|
|
|
steps:
|
|
- run: echo '${{ needs.check_version.outputs.LATEST_VERSION }}'
|
|
|
|
- name: Create Runner Release
|
|
uses: actions/create-release@v1
|
|
id: createRelease
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
|
|
with:
|
|
tag_name: '${{ needs.check_version.outputs.LATEST_VERSION }}'
|
|
release_name: '${{ needs.check_version.outputs.LATEST_VERSION }}'
|
|
prerelease: false
|
|
|
|
|
|
patch_file:
|
|
needs: [check_version, create_release]
|
|
runs-on: ubuntu-20.04
|
|
if: needs.check_version.outputs.RELEASE_VERSION != needs.check_version.outputs.LATEST_VERSION
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v3
|
|
with:
|
|
python-version: '3.8' # Version range or exact version of a Python version to use, using SemVer's version range syntax
|
|
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
|
|
- name: install dependencies
|
|
run: |
|
|
sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo apt-get install innoextract cmake -y
|
|
python3 -m pip install r2pipe loguru
|
|
|
|
- name: build radare2
|
|
shell: bash
|
|
run: |
|
|
git clone https://github.com/radareorg/radare2
|
|
radare2/sys/install.sh
|
|
|
|
- name: patch version
|
|
|
|
run: |
|
|
python3 auto-analysis/patch.py
|
|
tar -zcvf auto-analysis/win/x64/build/typoraCracker.tar.gz auto-analysis/win/x64/build/*
|
|
|
|
- name: Check release version
|
|
id: checkReleaseVersion
|
|
uses: actions/github-script@v3.1.0
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
try {
|
|
const releaseVersion = '${{ needs.check_version.outputs.LATEST_VERSION }}'
|
|
const releaseResponse = await github.repos.getReleaseByTag({
|
|
owner: 'Mas0nShi',
|
|
repo: 'typoraCracker',
|
|
tag: releaseVersion
|
|
})
|
|
const {
|
|
data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl }
|
|
} = releaseResponse;
|
|
core.setOutput('id', releaseId);
|
|
core.setOutput('html_url', htmlUrl);
|
|
core.setOutput('upload_url', uploadUrl);
|
|
core.setOutput('version', releaseVersion);
|
|
} catch (e) {
|
|
core.setFailed(e.message);
|
|
}
|
|
|
|
- name: Upload win x64 typora.py for typoraCracker
|
|
uses: actions/upload-release-asset@v1.0.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}'
|
|
asset_path: '${{ github.workspace }}/auto-analysis/win/x64/build/typoraCracker.tar.gz'
|
|
asset_name: '${{ needs.check_version.outputs.LATEST_VERSION }}-win-x64.tar.gz'
|
|
asset_content_type: application/x-tgz
|
|
|