all repos — min @ 3c68acb940f04d0deb5c8424d85168e6fa6ca517

A small but practical concatenative programming language.

Added some meaningful(?) comments
Yanis Zafirópulos 1265028+drkameleon@users.noreply.github.com
Wed, 20 Jan 2021 19:51:36 +0100
commit

3c68acb940f04d0deb5c8424d85168e6fa6ca517

parent

d7e711fac76affbc920c85fcf4669854024d7731

1 files changed, 31 insertions(+), 5 deletions(-)

jump to
M .github/workflows/release.yml.github/workflows/release.yml

@@ -2,6 +2,7 @@ name: Release

# Controls when the action will run. on: + # Run only when a new tag is pushed push: tags: - 'v*.*.*'

@@ -9,13 +10,17 @@

# Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "ci" + + # First, build and package our different assets package: name: "Package" - # The type of runner that the job will run on + # Set up a matrix of different configurations: + # for now Linux and MacOS (Windows can obviously be added as well) + # Here, we could also add flags - under a different matrix key - + # for different builds: e.g. lite vs non-lite + runs-on: ${{ matrix.os }} strategy: matrix:

@@ -27,71 +32,88 @@ env:

CHOOSENIM_CHOOSE_VERSION: stable CHOOSENIM_NO_ANALYTICS: 1 - # Steps represent a sequence of tasks that will be executed as part of the job 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.6.0 with: access_token: ${{ github.token }} - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + # Checks out the repository - uses: actions/checkout@v2 + # Install libraries - name: install musl-gcc run: sudo apt-get install -y musl-tools if: matrix.os == 'ubuntu-latest' + # Set path - name: Update $PATH run: echo "$HOME/.nimble/bin" >> $GITHUB_PATH + # Install the compiler - name: Install Nim run: | curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh sh init.sh -y + # Install dependencies - name: Install nifty run: nimble install -y nifty - name: Install deps run: nifty install + # Build for linux - name: Build (Linux) run: nim c -d:release -d:ssl --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc --cpu:amd64 --os:linux -o:min min if: matrix.os == 'ubuntu-latest' + # Build for MacOS - name: Build (MacOS) run: nim c -d:release -d:ssl -o:min min if: matrix.os == 'macos-latest' + # Package the resulting binary (along with the license and readme file) - name: Create artifact run: | install -m 0755 ./min . tar czf min-${{runner.os}}.tar.gz min README.md LICENSE + # And upload it, so that we can reuse all of them later as release assets - name: Upload Artifact uses: 'actions/upload-artifact@v1' with: name: min-${{runner.os}}.tar.gz path: min-${{runner.os}}.tar.gz + # Then, let's prepare our new release and upload the assets above upload: name: "Upload" runs-on: ubuntu-latest if: ${{ always() }} + + # This should run after all matrix job (for linux, mac, etc) above have finished needs: [package] + steps: - name: "Cancel similar actions in progress" uses: styfle/cancel-workflow-action@0.6.0 with: access_token: ${{ github.token }} + # Download all of the previously created assets + # and put them in an ./assets folder - uses: actions/download-artifact@v2 with: path: ./assets + # That's just for debugging to make sure everything is in place - name: Display structure of downloaded files run: ls -R + # Create a new release - name: Create Release id: create-release uses: actions/create-release@v1

@@ -105,6 +127,8 @@ ${{ github.ref }}

draft: false prerelease: false + # Post all of the above assets (under ./assets) + # as part of the newly created release - name: Upload Release Assets id: upload-release-assets uses: dwenegar/upload-release-assets@v1

@@ -113,3 +137,5 @@ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

with: release_id: ${{ steps.create-release.outputs.id }} assets_path: ./assets + + # Celebrate! :)