name: Fetch and Publish Latest Release on: schedule: - cron: '0 18 * * *' # 3:00 AM GMT+9 workflow_dispatch: inputs: tag_name: description: 'Tag name for the manual release' required: true default: 'YYYYMMDD-manual-HHMMSS' push: branches: - main jobs: fetch-and-publish: runs-on: ubuntu-latest steps: - name: Checkout this repository uses: actions/checkout@v2 - name: Fetch latest release from Vita3K id: fetch_release run: | latest_release=$(curl -s https://api.github.com/repos/Vita3K/Vita3K/releases/latest) echo "tag_name=$(echo $latest_release | jq -r .tag_name)" echo "release_body=$(echo $latest_release | jq -r .body)" # fetching assets mkdir -p artifacts for url in "$(echo $latest_release | jq -r '.assets[] | .browser_download_url')"; do wget -P artifacts $url done release_name=$(echo $latest_release | jq -r .body | grep -oP 'Vita3K Build: \d+') echo "release_name=$release_name" commit_hash=$(echo $latest_release | jq -r .body | grep -oP 'corresponding commit \K[0-9a-f]{40}') if [ -n "$commit_hash" ]; then release_body=$(echo $latest_release | jq -r .body | sed "s/corresponding commit $commit_hash/corresponding commit https:\/\/github.com\/Vita3K\/Vita3K\/commit\/$commit_hash/") echo "release_body=$release_body" fi echo "tag_name=$tag_name" >> $GITHUB_ENV echo "release_body=$release_body" >> $GITHUB_ENV echo "assets=$assets" >> $GITHUB_ENV echo "release_name=$release_name" >> $GITHUB_ENV - name: Create release in this repository id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.tag_name || format('YYYYMMDD-HHmmss', github.event.inputs['time']) }} release_name: ${{ env.release_name }} body: ${{ env.release_body }} draft: false prerelease: false - name: Upload assets to the new release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/$(basename $asset_path) asset_name: $(basename $asset_path) asset_content_type: application/octet-stream