-
Notifications
You must be signed in to change notification settings - Fork 3
141 lines (118 loc) · 5.45 KB
/
deploy-linux.yml
File metadata and controls
141 lines (118 loc) · 5.45 KB
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
132
133
134
135
136
137
name: deploy-linux
on:
push:
branches:
- reacdc_save
release:
types:
- published
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
conda_platform: [ linux-64 ]
artifact_name: [ gemsgui-linux ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get version from CMakeLists.txt
id: get_version
uses: DarwinInnovation/cmake-project-version-action@v1.0
- name: Set deploy name
id: strings
shell: bash
run: >
echo "deploy-name=GEMS${{ steps.get_version.outputs.version }}" >> "$GITHUB_OUTPUT"
- name: Set deploy dir
id: strings2
shell: bash
run: |
echo "export-output-dir=${{ github.workspace }}/export-${{ steps.strings.outputs.deploy-name }}/gems3k" >> "$GITHUB_OUTPUT"
echo "deploy-output-dir=${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app" >> "$GITHUB_OUTPUT"
echo "deploy-output-name=linux-${{ steps.strings.outputs.deploy-name }}.zip" >> "$GITHUB_OUTPUT"
- name: Setup Conda
uses: conda-incubator/setup-miniconda@v4
with:
auto-activate: true
channels: conda-forge
- name: Install conda-lock
shell: bash -l {0}
run: pip install conda-lock
- name: Configuring Conda Environment
shell: bash -l {0}
run: |
conda config --set always_yes yes
conda config --set changeps1 no
conda config --set solver libmamba
conda config --set path_conflict warn
conda clean -a -y
conda-lock -f environment.yml -p ${{ matrix.conda_platform }}
conda-lock install --name GEMSGUI conda-lock.yml
- name: Building, Testing & Installing GEMSGUI
if: matrix.os != 'windows-latest'
shell: bash -l {0}
run: |
conda activate GEMSGUI
mkdir .build && cd .build
export CC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gcc
export CXX=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++
export CONDA_BUILD_SYSROOT=$CONDA_PREFIX/x86_64-conda-linux-gnu/sysroot
cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ steps.strings2.outputs.deploy-output-dir }} -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX
ninja
./generate_gems3help.sh
ninja install
cd benchcomp
ls
./gems3k-export -d -s . -p template_export.json -e ${{ steps.strings2.outputs.export-output-dir }}
- name: Check deploy
run: |
cd ${{ github.workspace }}
ls
cp -r "${{ github.workspace }}/Resources" "${{ steps.strings2.outputs.deploy-output-dir }}"
cp "${{ github.workspace }}/Resources/rungems3.sh" "${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}"
cp "${{ github.workspace }}/Resources/README-linux.md" "${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/README.md"
ldd "${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/bin/gem-selektor"
- name: Clean up system libraries
run: |
rm -f ${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/lib/libc.so.6
rm -f ${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/lib/libm.so.6
rm -f ${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/lib/libdl.so.2
rm -f ${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/lib/librt.so.1
rm -f ${{ github.workspace }}/${{ steps.strings.outputs.deploy-name }}/Gems3-app/lib/libpthread.so.0
- name: Create zip archive for GitHub release
run: |
cd ${{ github.workspace }}
zip -y -r ${{ steps.strings2.outputs.deploy-output-name }} ${{ steps.strings.outputs.deploy-name }}
- name: Upload zip archive
uses: actions/upload-artifact@v4
with:
name: linux-${{ steps.strings.outputs.deploy-name }}
path: ${{ github.workspace }}/${{ steps.strings2.outputs.deploy-output-name }}
- name: Upload release asset
if: github.event_name == 'release' && github.event.action == 'published'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ github.workspace }}/${{ steps.strings2.outputs.deploy-output-name }}
asset_name: ${{ steps.strings2.outputs.deploy-output-name }}
asset_content_type: application/zip
- name: Upload export gems3k archive
uses: actions/upload-artifact@v4
with:
name: gems3k-${{ steps.strings.outputs.deploy-name }}
path: ${{ github.workspace }}/export-${{ steps.strings.outputs.deploy-name }}
- name: Upload release asset
if: github.event_name == 'release' && github.event.action == 'published'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ github.workspace }}/export-${{ steps.strings.outputs.deploy-name }}
asset_name: gems3k-${{ steps.strings.outputs.deploy-name }}
asset_content_type: application/zip