name: ⚒️ Create Release
on:
workflow_call:
secrets:
CRATES_IO_TOKEN:
required: true
AUR_USERNAME:
required: true
AUR_EMAIL:
required: true
AUR_SSH_PRIVATE_KEY:
required: true
TOKEN:
required: true
jobs:
release-github:
name: 🚀 Create GitHub Release
runs-on: ubuntu-latest
steps:
- name: 🔍 Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 📥 Download All Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: 🏷️ Extract Version Tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: 🎉 Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.get_version.outputs.VERSION }}
files: |
artifacts/linux-x86_64-unknown-linux-gnu/getquotes-x86_64-unknown-linux-gnu.tar.gz
artifacts/linux-aarch64-unknown-linux-gnu/getquotes-aarch64-unknown-linux-gnu.tar.gz
artifacts/macos-x86_64-apple-darwin/getquotes-x86_64-apple-darwin.tar.gz
artifacts/macos-aarch64-apple-darwin/getquotes-aarch64-apple-darwin.tar.gz
artifacts/windows-x86_64-pc-windows-gnu/getquotes-x86_64-pc-windows-gnu.zip
artifacts/windows-x86_64-pc-windows-msvc/getquotes-x86_64-pc-windows-msvc.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 🎴 Setup Node
uses: actions/setup-node@v4
with:
registry-url: https://registry.npmjs.org/
node-version: lts/*
- name: 🌑 Create Release Notes
run: npx changelogithub
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
release-cargo:
name: 🚀 Create Cargo Release
needs: [release-github]
runs-on: ubuntu-latest
steps:
- name: 🔍 Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 📦 Publish to crates.io
run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }} --allow-dirty
env:
CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
release-aur:
name: 🚀 Create AUR Release
runs-on: ubuntu-latest
needs: [release-github]
steps:
- name: 🔍 Checkout Code
uses: actions/checkout@v4
with:
ref: "main"
fetch-depth: 0
- name: 🔒 Update PKGBUILD pkgver
run: |
cd ci
./pkgbuild-ci.sh
cd ..
- name: 💠 Publish To Aur
uses: KSXGitHub/github-actions-deploy-aur@v3.0.1
with:
pkgname: getquotes
pkgbuild: ./packages/aur/getquotes/PKGBUILD
updpkgsums: true
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: Update AUR package
ssh_keyscan_types: rsa,ecdsa,ed25519
env:
AUR_USERNAME: ${{ secrets.AUR_USERNAME }}
AUR_EMAIL: ${{ secrets.AUR_EMAIL }}
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
- name: 💫 Commit PKGBUILD
uses: EndBug/add-and-commit@v9
with:
add: "packages/aur/getquotes/PKGBUILD"
message: "📝 Update PKGBUILD"
default_author: github_actions
release-brew:
name: 🚀 Create Brew Release
runs-on: ubuntu-latest
needs: [release-github]
steps:
- name: 🔍 Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 📦 Bump Homebrew Formula
env:
TOKEN: ${{ secrets.TOKEN }}
run: |
git clone https://github.com/MuntasirSZN/homebrew-programs.git
git config --global url."https://${TOKEN}@github.com/".insteadOf "https://github.com/"
./ci/brew-ci.sh