lua-astra 0.28.1

🔥 Blazingly Fast 🔥 web server runtime for Lua
name: Release Linux

on:
  release:
    types: [created]

env:
  CARGO_TERM_COLOR: always

jobs:
  release:
    name: Release Linux
    runs-on: ubuntu-latest
    environment: production

    env:
      CARGO_INCREMENTAL: 0

    steps:
      - uses: actions/checkout@v4
      - run: cargo install cross --git https://github.com/cross-rs/cross

      - run: |
          rustup toolchain install 1.88.0
          rustup override set 1.88.0
          rustup show

      - name: LuaJIT
        run: cross build --release --target x86_64-unknown-linux-gnu --features default
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-luajit-linux-amd64
          tag: ${{ github.ref }}

      - name: LuaJIT 52
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features luajit52
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-luajit52-linux-amd64
          tag: ${{ github.ref }}
      
      - name: Luau
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features luau
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-luau-linux-amd64
          tag: ${{ github.ref }}

      - name: Lua 5.1
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features lua51
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-lua51-linux-amd64
          tag: ${{ github.ref }}
      
      - name: Lua 5.2
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features lua52
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-lua52-linux-amd64
          tag: ${{ github.ref }}
      
      - name: Lua 5.3
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features lua53
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-lua53-linux-amd64
          tag: ${{ github.ref }}
      
      - name: Lua 5.4
        run: cross build --release --target x86_64-unknown-linux-gnu --no-default-features --features lua54
      - uses: svenstaro/upload-release-action@v2
        with:
          file: ./target/x86_64-unknown-linux-gnu/release/astra
          asset_name: astra-lua54-linux-amd64
          tag: ${{ github.ref }}

      - uses: chrnorm/deployment-action@v2
        name: Create GitHub deployment
        id: deployment
        with:
          token: "${{ github.token }}"
          environment-url: https://github.com/ArkForgeLabs/Astra
          environment: production

      - name: Update deployment status (success)
        if: success()
        uses: chrnorm/deployment-status@v2
        with:
          token: "${{ github.token }}"
          environment-url: ${{ steps.deployment.outputs.environment_url }}
          deployment-id: ${{ steps.deployment.outputs.deployment_id }}
          state: "success"

      - name: Update deployment status (failure)
        if: failure()
        uses: chrnorm/deployment-status@v2
        with:
          token: "${{ github.token }}"
          environment-url: ${{ steps.deployment.outputs.environment_url }}
          deployment-id: ${{ steps.deployment.outputs.deployment_id }}
          state: "failure"