all repos — hex @ 3a0e394a4556db8e0001910fe4469c72391e15d4

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

.github/workflows/ci.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
name: CI

# 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"
  ci:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
          os:
              - ubuntu-latest
              - macos-latest
              - windows-latest
              - macos-13

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2
      
      - name: Build
        run: make

      - name: Test
        run: make test

      # Install cosmocc
      - name: Install cosmocc
        run: |
          mkdir -p $HOME/cosmocc
          cd $HOME/cosmocc
          wget -q https://cosmo.zip/pub/cosmocc/cosmocc.zip
          unzip -q cosmocc.zip
          pwd
          ls -l
        if: matrix.os == 'ubuntu-latest'

      # Add cosmocc to PATH + see https://redbean.dev/#install
      - name: Add cosmocc to PATH
        run: |
          echo $HOME/cosmocc/bin >> $GITHUB_PATH
          sudo wget -O /usr/bin/ape https://cosmo.zip/pub/cosmos/bin/ape-$(uname -m).elf
          sudo chmod +x /usr/bin/ape
          sudo sh -c "echo ':APE:M::MZqFpD::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
          sudo sh -c "echo ':APE-jart:M::jartsr::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
        if: matrix.os == 'ubuntu-latest'

      # Generate APE binary
      - name: Generate APE binary
        run: |
          mv hex hex.native
          make ape
        if: matrix.os == 'ubuntu-latest'
        
      # Run tests with APE binary
      - name: Test (APE)
        run: |
          make test
        if: matrix.os == 'ubuntu-latest'