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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
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 }}
defaults:
run:
shell: msys2 {0}
steps:
- uses: eine/setup-msys2@v1
with:
msystem: MSYS
update: true
install: base-devel git
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: Build and (hopefully) install package
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
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
|