all repos — min @ 44b7a7f8f3c993efdb4ca73b50824e2d97982f37

A small but practical concatenative programming language.

.github/workflows/release.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
name: Release

# Controls when the action will run. 
on:
  # Triggers the workflow on push or pull request events but only for the master branch
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

  # 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"
  package:
    name: "Package"

    # The type of runner that the job will run on
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - macos-latest

    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:
      - 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
      - uses: actions/checkout@v2
      
      - name: install musl-gcc
        run: sudo apt-get install -y musl-tools 
        if: matrix.os == 'ubuntu-latest'
      
      - name: Update $PATH
        run: echo "$HOME/.nimble/bin" >> $GITHUB_PATH

      - name: Install Nim
        run: |
          curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh
          sh init.sh -y

      - name: Install nifty
        run: nimble install -y nifty
        
      - name: Install deps
        run: nifty install
      
      - 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'

      - name: Build (MacOS)
        run: nim c -d:release -d:ssl -o:min min
        if: matrix.os == 'macos-latest'
      
      - name: Create artifact
        run: |
          install -m 0755 ./min .
          tar czf min-${{runner.os}}.tar.gz min README.md LICENSE

      - name: Upload Artifact
        uses: 'actions/upload-artifact@v1'
        with:
          name: min-${{runner.os}}.tar.gz
          path: min-${{runner.os}}.tar.gz
          
  upload:
    name: "Upload"
    runs-on: ubuntu-latest
    if: ${{ always() }}
    needs: [package]
    steps:
      - name: "Cancel similar actions in progress"
        uses: styfle/cancel-workflow-action@0.6.0
        with:
          access_token: ${{ github.token }}

      - uses: actions/download-artifact@v2
        with:
          path: ./assets
      
      - name: Display structure of downloaded files
        run: ls -R

      - name: Create Release
        id: create-release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ github.ref }}
          body: |
            ${{ github.ref }}
          draft: false
          prerelease: false

      - name: Upload Release Assets
        id: upload-release-assets
        uses: dwenegar/upload-release-assets@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          release_id: ${{ steps.create-release.outputs.id }}
          assets_path: ./assets