name: aztro_core release
on:
push:
branches:
- main
permissions:
contents: write
jobs:
create-release:
if: contains(github.event.head_commit.message, 'release')
runs-on: windows-latest
outputs:
release_upload_url: ${{ steps.create_release.outputs.upload_url }}
release_tag: ${{ steps.release_tag.outputs.RELEASE_TAG }}
steps:
- name: Determine Release Tag
id: release_tag
shell: pwsh
run: |
$RELEASE_TAG = "v$([datetime]::Now.ToString('yyyy.MM.dd.HHmmss'))"
echo "RELEASE_TAG=$RELEASE_TAG" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
echo "Release tag: $RELEASE_TAG"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.release_tag.outputs.RELEASE_TAG }}
release_name: aztro_core 🚀 release ${{ steps.release_tag.outputs.RELEASE_TAG }}
draft: false
prerelease: false
release:
needs: create-release
if: contains(github.event.head_commit.message, 'release')
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Cache Cargo Registry and Target Directory
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Build Rust Project
run: cargo build --release --target x86_64-pc-windows-msvc
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.release_upload_url }}
asset_path: ./target/x86_64-pc-windows-msvc/release/libaztro_core.rlib
asset_name: libaztro_core.rlib
asset_content_type: application/octet-stream