11
11
12
12
env :
13
13
APP_NAME : YIO-remote-software
14
- APP_ARCHITECTURE : RPi0
15
14
PROJECT_NAME : remote-software
16
15
HASH_FILENAME : yio-remote-software.hash
17
16
23
22
matrix :
24
23
config :
25
24
- {
26
- name : " RPi0 Release Build" , artifact: "RPi0-release",
27
- qmake-args : " CONFIG+=release"
25
+ name : " remote-os v0.x Build" , artifact: "RPi0-release",
26
+ qmake-args : " CONFIG+=release" ,
27
+ build-image : " zehnm/yio-crosscompile-action:1.1.0"
28
28
}
29
-
29
+ - {
30
+ name : " remote-os v1.x Build" , artifact: "RPi0-Qt5.12.8",
31
+ qmake-args : " CONFIG+=release" ,
32
+ build-image : " zehnm/yio-crosscompile-action:2.0.0"
33
+ }
34
+
30
35
steps :
31
- - name : github env vars
32
- run : |
33
- echo "$GITHUB_REF"
34
- echo "$GITHUB_HEAD_REF"
35
- echo "$GITHUB_BASE_REF"
36
-
37
36
- name : Checkout ${{ env.PROJECT_NAME}}
38
37
uses : actions/checkout@v2
39
38
with :
40
39
# History of 500 should be more than enough to calculate commit count since last release tag.
41
40
fetch-depth : 500
41
+ # Check out into sub folder, we also need the integrations.library at the same level!
42
42
path : ${{ env.PROJECT_NAME}}
43
43
44
44
- name : Fetch all tags to determine version
45
+ # Used in cross compile step
45
46
run : |
46
47
cd ${{ env.PROJECT_NAME}}
47
48
git fetch origin +refs/tags/*:refs/tags/*
48
49
git describe --match "v[0-9]*" --tags HEAD --always
49
50
50
- - name : Set build timestamp
51
- run : echo "::set-env name=TIMESTAMP::$(date +"%Y%m%d_%H%M%S")"
52
-
51
+ # Unfortunately we can't use a dynamic Action as in "uses: ${{ matrix.config.build-image }}"
52
+ # - name: Cross compile
53
+ # id: cross-compile
54
+ # uses: zehnm/yio-crosscompile-action@2.0.0
55
+ # with:
56
+ # project-name: ${{ env.PROJECT_NAME }}
57
+ # output-path: ${GITHUB_WORKSPACE}/binaries/app
58
+ # qmake-args: ${{ matrix.config.qmake-args }}
59
+ #
60
+ # So let's do it manually :-( Maybe one day we'll get that feature from GitHub...
53
61
- name : Cross compile
54
- id : cross-compile
55
- uses : zehnm/yio-crosscompile-action@v1.1.0
56
- with :
57
- project-name : ${{ env.PROJECT_NAME }}
58
- output-path : ${GITHUB_WORKSPACE}/binaries/app
59
- qmake-args : ${{ matrix.config.qmake-args }}
60
-
62
+ run : |
63
+ docker pull ${{ matrix.config.build-image }}
64
+ docker run --workdir /github/workspace --rm \
65
+ -e GITHUB_WORKSPACE=/github/workspace \
66
+ -v /home/runner/work/${{ env.PROJECT_NAME}}/${{ env.PROJECT_NAME}}:/github/workspace \
67
+ ${{ matrix.config.build-image }} ${{ env.PROJECT_NAME}} /github/workspace/binaries/app ${{ matrix.config.qmake-args }} https://github.com/YIO-Remote/integrations.library.git .
68
+
69
+ - name : Get artifact version
70
+ run : |
71
+ read -r APP_VERSION < binaries/version.txt
72
+ echo "::set-env name=APP_VERSION::$APP_VERSION"
73
+
61
74
- name : Upload build artefacts
62
- uses : actions/upload-artifact@v1
75
+ uses : actions/upload-artifact@v2
63
76
with :
64
77
path : binaries
65
- name : ${{ env.APP_NAME }}-${{ matrix.config.artifact }}
78
+ name : ${{ env.APP_NAME }}-v${{ env.APP_VERSION }}-${{ matrix.config.artifact }}
79
+ if-no-files-found : error
66
80
67
81
release :
68
82
name : Create Release
71
85
needs : build
72
86
73
87
steps :
74
- - run : mkdir release
75
- - name : Download release artifact
76
- uses : actions/download-artifact@v1
77
- with :
78
- name : ${{ env.APP_NAME }}-${{ env.APP_ARCHITECTURE }}-release
79
- path : ./release
88
+ - name : Download build artifacts
89
+ uses : actions/download-artifact@v2
80
90
81
- - name : Get artifact version
91
+ - name : Display structure of downloaded files
92
+ run : ls -R
93
+
94
+ - name : Get timestamp
82
95
run : |
83
- read -r APP_VERSION < release/version.txt
84
- echo "::set-env name=APP_VERSION::$APP_VERSION"
85
96
echo "::set-env name=TIMESTAMP::$(date +"%Y%m%d_%H%M%S")"
86
-
97
+
87
98
- name : Create GitHub development build archives
88
99
if : " !contains(github.ref, 'tags/v')"
89
100
run : |
90
- tar cvf ${{ env.APP_NAME }}-v${{ env.APP_VERSION }}-${{ env.TIMESTAMP }} -${{ env.APP_ARCHITECTURE }}-release .tar -C release .
101
+ for D in *; do if [ -d "${D}" ]; then tar cvf $D -${{ env.TIMESTAMP }}.tar -C $D .; fi; done;
91
102
for filename in *.tar; do echo "sha256 `sha256sum $filename`" >> ${{ env.HASH_FILENAME }}; done;
92
103
93
- - name : Create Pre-Release ${{ env.APP_VERSION }}
104
+ - name : Create Pre-Release
94
105
uses : " marvinpinto/action-automatic-releases@latest"
95
106
if : " !contains(github.ref, 'tags/v')"
96
107
with :
97
108
repo_token : " ${{ secrets.GITHUB_TOKEN }}"
98
109
automatic_release_tag : " latest"
99
110
prerelease : true
100
- title : " Development Build ${{ env.APP_VERSION }} "
111
+ title : " Development Build"
101
112
files : |
102
113
*.tar
103
114
${{ env.HASH_FILENAME }}
104
115
105
116
- name : Create GitHub release archives
106
117
if : " contains(github.ref, 'tags/v')"
107
118
run : |
108
- tar cvf ${{ env.APP_NAME }}-v${{ env.APP_VERSION }}-${{ env.APP_ARCHITECTURE }}-release .tar -C release .
119
+ for D in *; do if [ -d "${D}" ]; then tar cvf $D .tar -C $D .; fi; done;
109
120
for filename in *.tar; do echo "sha256 `sha256sum $filename`" >> ${{ env.HASH_FILENAME }}; done;
110
121
111
- - name : Create Release ${{ env.APP_VERSION }}
122
+ - name : Create Release
112
123
uses : " marvinpinto/action-automatic-releases@latest"
113
124
if : " contains(github.ref, 'tags/v')"
114
125
with :
115
126
repo_token : " ${{ secrets.GITHUB_TOKEN }}"
116
127
prerelease : false
117
128
files : |
118
- *.tar
119
- ${{ env.HASH_FILENAME }}
129
+ *.tar
130
+ ${{ env.HASH_FILENAME }}
131
+
0 commit comments