YAML · 3103 bytes Raw Blame History
1 name: Build Windows
2
3 on:
4 push:
5 tags:
6 - 'v*'
7 workflow_dispatch:
8
9 permissions:
10 contents: write
11
12 jobs:
13 build-windows:
14 runs-on: windows-latest
15
16 steps:
17 - name: Checkout code
18 uses: actions/checkout@v4
19
20 - name: Set up MSYS2
21 uses: msys2/setup-msys2@v2
22 with:
23 msystem: MINGW64
24 update: true
25 install: >-
26 mingw-w64-x86_64-gcc-fortran
27 mingw-w64-x86_64-gcc
28 make
29
30 - name: Build facsimile
31 shell: msys2 {0}
32 run: |
33 make clean || true
34 make release
35
36 - name: Create release archive
37 shell: msys2 {0}
38 run: |
39 VERSION=$(cat VERSION)
40 mkdir -p release
41 cp fac.exe release/
42 cp README.md release/
43 cd release
44 tar -czvf ../facsimile-${VERSION}-windows-x86_64.tar.gz *
45
46 - name: Upload artifact
47 uses: actions/upload-artifact@v4
48 with:
49 name: facsimile-windows-x86_64
50 path: facsimile-*-windows-x86_64.tar.gz
51
52 - name: Release
53 uses: softprops/action-gh-release@v1
54 if: startsWith(github.ref, 'refs/tags/')
55 with:
56 files: facsimile-*-windows-x86_64.tar.gz
57 env:
58 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59
60 build-linux:
61 runs-on: ubuntu-latest
62
63 steps:
64 - name: Checkout code
65 uses: actions/checkout@v4
66
67 - name: Install gfortran
68 run: |
69 sudo apt-get update
70 sudo apt-get install -y gfortran
71
72 - name: Build facsimile
73 run: |
74 make clean || true
75 make release
76
77 - name: Create release archive
78 run: |
79 VERSION=$(cat VERSION)
80 mkdir -p release
81 cp fac release/
82 cp README.md release/
83 cd release
84 tar -czvf ../facsimile-${VERSION}-linux-x86_64.tar.gz *
85
86 - name: Upload artifact
87 uses: actions/upload-artifact@v4
88 with:
89 name: facsimile-linux-x86_64
90 path: facsimile-*-linux-x86_64.tar.gz
91
92 - name: Release
93 uses: softprops/action-gh-release@v1
94 if: startsWith(github.ref, 'refs/tags/')
95 with:
96 files: facsimile-*-linux-x86_64.tar.gz
97 env:
98 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
99
100 build-macos:
101 runs-on: macos-latest
102
103 steps:
104 - name: Checkout code
105 uses: actions/checkout@v4
106
107 - name: Install gfortran
108 run: |
109 brew install gcc
110
111 - name: Build facsimile
112 run: |
113 make clean || true
114 make release
115
116 - name: Create release archive
117 run: |
118 VERSION=$(cat VERSION)
119 ARCH=$(uname -m)
120 mkdir -p release
121 cp fac release/
122 cp README.md release/
123 cd release
124 tar -czvf ../facsimile-${VERSION}-macos-${ARCH}.tar.gz *
125
126 - name: Upload artifact
127 uses: actions/upload-artifact@v4
128 with:
129 name: facsimile-macos
130 path: facsimile-*-macos-*.tar.gz
131
132 - name: Release
133 uses: softprops/action-gh-release@v1
134 if: startsWith(github.ref, 'refs/tags/')
135 with:
136 files: facsimile-*-macos-*.tar.gz
137 env:
138 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
139