tirbofish/dropbear · diff
jarvis, create a new release for magna-carta
Signature present but could not be verified.
Unverified
@@ -0,0 +1,137 @@ +name: Release Magna Carta + +on: + push: + branches: + - main + +permissions: + contents: write + +jobs: + check-and-release: + runs-on: ubuntu-latest + outputs: + should_release: ${{ steps.check-commit.outputs.should_release }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Check commit message + id: check-commit + run: | + COMMIT_MSG=$(git log -1 --pretty=%B) + if [[ "$COMMIT_MSG" == *"jarvis, create a new release for magna-carta"* ]]; then + echo "should_release=true" >> $GITHUB_OUTPUT + else + echo "should_release=false" >> $GITHUB_OUTPUT + fi + + build-and-release: + needs: check-and-release + if: needs.check-and-release.outputs.should_release == 'true' + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + artifact_name: magna-carta-linux-x64 + binary_name: magna-carta + + - os: windows-latest + target: x86_64-pc-windows-msvc + artifact_name: magna-carta-windows-x64.exe + binary_name: magna-carta.exe + + - os: windows-latest + target: aarch64-pc-windows-msvc + artifact_name: magna-carta-windows-arm64.exe + binary_name: magna-carta.exe + + - os: macos-latest + target: x86_64-apple-darwin + artifact_name: magna-carta-macos-x64 + binary_name: magna-carta + + - os: macos-14 + target: aarch64-apple-darwin + artifact_name: magna-carta-macos-arm64 + binary_name: magna-carta + runs-on: ${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Build release + run: cargo build --release --target ${{ matrix.target }} -p magna-carta + + - name: Rename and prepare artifact + shell: bash + run: | + # Source binary path + SRC="target/${{ matrix.target }}/release/${{ matrix.binary_name }}" + DST="${{ matrix.artifact_name }}" + + # Copy to root for easy upload + cp "$SRC" "./$DST" + + # Set executable permissions (Unix) + if [[ "${{ matrix.os }}" != "windows-latest" ]]; then + chmod +x "./$DST" + fi + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.artifact_name }} + path: ${{ matrix.artifact_name }} + + create-release: + needs: [check-and-release, build-and-release] + if: needs.check-and-release.outputs.should_release == 'true' + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + + - name: Restore executable permissions (just in case) + run: | + chmod +x artifacts/magna-carta-linux-x64/magna-carta-linux-x64 + chmod +x artifacts/magna-carta-macos-x64/magna-carta-macos-x64 + chmod +x artifacts/magna-carta-macos-arm64/magna-carta-macos-arm64 + + - name: Check if changelog exists + id: changelog-check + run: | + if [ -f "docs/changelog/magna-carta/CHANGELOG.md" ]; then + cp docs/changelog/magna-carta/CHANGELOG.md ./RELEASE_BODY.md + echo "changelog_exists=true" >> $GITHUB_OUTPUT + else + echo "changelog_exists=false" >> $GITHUB_OUTPUT + fi + + - name: Create Release + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: magna-carta-v${{ github.run_number }} + name: Magna Carta Release v${{ github.run_number }} + body_path: ${{ steps.changelog-check.outputs.changelog_exists == 'true' && 'RELEASE_BODY.md' || '' }} + files: | + artifacts/magna-carta-linux-x64/magna-carta-linux-x64 + artifacts/magna-carta-windows-x64.exe/magna-carta-windows-x64.exe + artifacts/magna-carta-windows-arm64.exe/magna-carta-windows-arm64.exe + artifacts/magna-carta-macos-x64/magna-carta-macos-x64 + artifacts/magna-carta-macos-arm64/magna-carta-macos-arm64 @@ -1,129 +0,0 @@ -# .github/workflows/release-magna-carta.yml -name: Release Magna Carta - -on: - push: - branches: - - main - -permissions: - contents: write # Required to create GitHub releases - -jobs: - check-and-release: - runs-on: ubuntu-latest - outputs: - should_release: ${{ steps.check-commit.outputs.should_release }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Check commit message - id: check-commit - run: | - COMMIT_MSG=$(git log -1 --pretty=%B) - if [[ "$COMMIT_MSG" == *"jarvis, create a new release for magna-carta"* ]]; then - echo "should_release=true" >> $GITHUB_OUTPUT - else - echo "should_release=false" >> $GITHUB_OUTPUT - fi - - build-and-release: - needs: check-and-release - if: needs.check-and-release.outputs.should_release == 'true' - strategy: - fail-fast: false - matrix: - include: - # Linux - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - artifact_name: magna-carta-linux-x64 - - os: ubuntu-latest - target: aarch64-unknown-linux-gnu - artifact_name: magna-carta-linux-arm64 - - # Windows - - os: windows-latest - target: x86_64-pc-windows-msvc - artifact_name: magna-carta-windows-x64.exe - - os: windows-latest - target: aarch64-pc-windows-msvc - artifact_name: magna-carta-windows-arm64.exe - - # macOS - - os: macos-latest - target: x86_64-apple-darwin - artifact_name: magna-carta-macos-x64 - - os: macos-latest - target: aarch64-apple-darwin - artifact_name: magna-carta-macos-arm64 - runs-on: ${{ matrix.os }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - - - name: Build release - run: cargo build --release --target ${{ matrix.target }} -p magna-carta - - - name: Set executable permissions (Unix-like) - if: matrix.os != 'windows-latest' - run: | - chmod +x "target/${{ matrix.target }}/release/${{ matrix.artifact_name }}" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.artifact_name }} - path: target/${{ matrix.target }}/release/${{ matrix.artifact_name }} - - create-release: - needs: [check-and-release, build-and-release] - if: needs.check-and-release.outputs.should_release == 'true' - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: artifacts - - - name: Restore executable permissions - run: | - chmod +x artifacts/magna-carta-linux-x64/magna-carta-linux-x64 - chmod +x artifacts/magna-carta-linux-arm64/magna-carta-linux-arm64 - chmod +x artifacts/magna-carta-macos-x64/magna-carta-macos-x64 - chmod +x artifacts/magna-carta-macos-arm64/magna-carta-macos-arm64 - - - name: Check if changelog exists - id: changelog-check - run: | - if [ -f "docs/changelog/magna-carta/CHANGELOG.md" ]; then - cp docs/changelog/magna-carta/CHANGELOG.md ./RELEASE_BODY.md - echo "changelog_exists=true" >> $GITHUB_OUTPUT - else - echo "changelog_exists=false" >> $GITHUB_OUTPUT - fi - - - name: Create Release - uses: softprops/action-gh-release@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: magna-carta-v${{ github.run_number }} - name: Magna Carta Release v${{ github.run_number }} - body_path: ${{ steps.changelog-check.outputs.changelog_exists == 'true' && 'RELEASE_BODY.md' || '' }} - files: | - artifacts/magna-carta-linux-x64/magna-carta-linux-x64 - artifacts/magna-carta-linux-arm64/magna-carta-linux-arm64 - artifacts/magna-carta-windows-x64.exe/magna-carta-windows-x64.exe - artifacts/magna-carta-windows-arm64.exe/magna-carta-windows-arm64.exe - artifacts/magna-carta-macos-x64/magna-carta-macos-x64 - artifacts/magna-carta-macos-arm64/magna-carta-macos-arm64