name: 'push' on: push: pull_request: env: CI: true jobs: gpl: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: | TASK=buster+mcode ./dist/ci-run.sh -c --gpl --no-synth lin: strategy: fail-fast: false max-parallel: 3 matrix: task: [ { backend: mcode, version: '' }, { backend: llvm, version: '-5.0' }, { backend: gcc, version: '-8.3.0' } ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build and test GHDL in containers run: | TASK=ubuntu18+${{ matrix.task.backend }}${{ matrix.task.version }} ./dist/ci-run.sh -c mv ghdl-*-ubuntu18-*.tgz ghdl-gha-ubuntu-${{ matrix.task.backend }}.tgz - uses: actions/upload-artifact@v2 with: path: ghdl-gha-ubuntu-*.tgz osx: runs-on: macOS-latest steps: - uses: actions/checkout@v2 - run: | brew update brew install p7zip ./dist/macosx/install-ada.sh - name: Build and test GHDL run: | PATH=$PWD/gnat/bin:$PATH ./dist/ci-run.sh -c env: TASK: macosx+mcode GITHUB_OS: ${{ runner.os }} win: strategy: fail-fast: false max-parallel: 2 matrix: task: [ {installs: "MINGW32", pkg: "mcode"}, #{installs: "MINGW32", pkg: "llvm"}, ! Not yet functional #{installs: "MINGW64", pkg: "mcode"}, ! mcode is not yet supported on win64 {installs: "MINGW64", pkg: "llvm"}, ] runs-on: windows-latest env: MINGW_INSTALLS: ${{ matrix.task.installs }} TARGET: ${{ matrix.task.pkg }} steps: - uses: eine/setup-msys2@v0 with: msystem: MSYS update: true install: base-devel git - run: git config --global core.autocrlf input - uses: actions/checkout@v2 - name: Build and (hopefully) install package shell: msys2 {0} run: | ./dist/msys2-mingw/run.sh -b cp ./dist/msys2-mingw/${{ matrix.task.pkg }}/mingw-*ghdl*.pkg.tar.zst ghdl-gha-${{ matrix.installs }}-${{ matrix.task }}.zst - uses: actions/upload-artifact@v2 with: name: ${{ matrix.task.installs }}-${{ matrix.task.pkg }}-builddir path: ./dist/msys2-mingw/${{ matrix.task.pkg }}/src/ - uses: actions/upload-artifact@v2 with: name: ${{ matrix.task.installs }}-${{ matrix.task.pkg }}-builddir path: ./dist/msys2-mingw/${{ matrix.task.pkg }}/pkg/ - uses: actions/upload-artifact@v2 with: path: ./dist/msys2-mingw/${{ matrix.task.pkg }}/mingw-*ghdl*.pkg.tar.zst - name: Test package shell: msys2 {0} run: | ./dist/msys2-mingw/run.sh -t env: MSYSTEM: ${{ matrix.task.installs }} nightly: needs: [ lin, win ] runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v2 - if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' uses: eine/tip@master with: token: ${{ secrets.GITHUB_TOKEN }} tag: 'nightly' files: artifact/* - run: | curl -X POST https://api.github.com/repos/ghdl/docker/dispatches \ -H "Content-Type: application/json" \ -H 'Accept: application/vnd.github.everest-preview+json' \ -H "Authorization: token ${{ secrets.GHDL_BOT }}" \ --data '{"event_type": "ghdl"}' #--- # TODO: # - Cache # - 'gnat' directory in macOS job # # - Re-package a MINGW/MSYS2 package to provide a 'standalone' tarball/zipfile. # - https://github.com/ghdl/ghdl/issues/318#issuecomment-286246287 # # - Add GNAT GPL 32-bit build job with mcode backend