all repos — hex @ 0d0339e99bcdf5332898a0926f61ab4f6a0947a1

A tiny, minimalist, slightly-esoteric concatenative programming lannguage.

Added github action for releasing.
h3rald h3rald@h3rald.com
Thu, 05 Dec 2024 07:05:40 +0100
commit

0d0339e99bcdf5332898a0926f61ab4f6a0947a1

parent

e3f310213f3b315fff0a2ae8e0ddac17fcb83ebf

1 files changed, 89 insertions(+), 0 deletions(-)

jump to
A .github/workflows/release.yml

@@ -0,0 +1,89 @@

+name: Release + +# Controls when the action will run. +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + release: + name: "Build and upload artifacts" + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + - macos-13 + steps: + # Cancel other actions of the same type that might be already running + - name: "Cancel similar actions in progress" + uses: styfle/cancel-workflow-action@0.9.1 + with: + access_token: ${{ github.token }} + + # Detects OS and provide Nim-friendly OS identifiers + - name: Detect current OS + id: os + run: echo "os=${{matrix.os == 'ubuntu-latest' && 'linux' || matrix.os == 'macos-13' && 'macosx' || matrix.os == 'windows-latest' && 'windows'}}" >> $GITHUB_OUTPUT + + # Checks out the repository + - uses: actions/checkout@v2 + + # Sets path (Linux, macOS) + - name: Update $PATH + run: echo "$HOME/cosmocc/bin" >> $GITHUB_PATH + if: matrix.os == 'macos-13' || matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + # Sets path (Windows) + - name: Update %PATH% + run: echo "${HOME}/cosmocc/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + if: matrix.os == 'windows-latest' + + # Build (non-Windows) + - name: Build + run: make + if: matrix.os != 'windows-latest' + + # Build (Windows) + - name: Build + run: make + shell: bash + if: matrix.os == 'windows-latest' + + # Retrieve ID and Name of the current (draft) release + - name: "Get current release" + id: current-release + uses: InsonusK/get-latest-release@v1.0.1 + with: + myToken: ${{ github.token }} + exclude_types: "release" + view_top: 1 + + # Package the resulting Linux/macOS binary + - name: Create artifact (Linux, macOS) + run: zip min_${{steps.current-release.outputs.tag_name}}_${{steps.os.outputs.os}}_x86_64.zip min + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-13' + + # Package the resulting macOs latest binary + - name: Create artifact (Linux, macOS) + run: zip min_${{steps.current-release.outputs.tag_name}}_${{steps.os.outputs.os}}_arm64.zip min + if: matrix.os == 'macos-latest' + + # Package the resulting Windows binary + - name: Create artifact (Windows) + run: Compress-Archive -Path min.exe -DestinationPath min_${{steps.current-release.outputs.tag_name}}_windows_x86_64.zip + if: matrix.os == 'windows-latest' + + # Upload artifacts to current draft release + - name: "Upload to current release" + uses: xresloader/upload-to-github-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file: "min_v*.zip" + overwrite: true + tag_name: ${{steps.current-release.outputs.tag_name}} + release_id: ${{steps.current-release.outputs.id }} + verbose: true