-
Notifications
You must be signed in to change notification settings - Fork 0
149 lines (129 loc) · 4.8 KB
/
ci.yml
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
138
139
140
141
142
143
144
145
146
147
148
149
---
# RISC OS CI build through build.riscos.online
#
#
# The 'release' job is triggered when a tag starting with a 'v' is created,
# which will create a GitHub release for the repository with the name of the
# version tag. The release will be a draft, and should be updated with
# changes as you see fit.
#
name: RISC OS
# Controls when the action will run. Triggers the workflow on:
# * push on any branch.
# * tag creation for tags beginning with a 'v'
on:
push:
branches: ["*"]
tags: ["v*"]
# Pull request events happen on pull request state transitions, so we probably don't want this here.
#pull_request:
# branches: ["*"]
jobs:
build-riscos:
# The type of runner that the job will run on
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
leafname: ${{ steps.version.outputs.leafname }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Step intended to be reused in CI pipelines.
- name: Obtain prerequisite build tool
run: |
# Fetch the build client
curl -s -L -o riscos-build-online https://github.com/gerph/robuild-client/releases/download/v0.05/riscos-build-online && chmod +x riscos-build-online
- name: Build through build.riscos.online
run: |
# Zip up the source to send to robuild
zip -q9r /tmp/source-archive.zip * .robuild.yaml
# Send the archive file to build service
./riscos-build-online -i /tmp/source-archive.zip -a off -t 60 -o /tmp/built
- name: Give the output a versioned name
id: version
run: |
if [[ -f VersionNum ]] ; then
version=$(sed '/MajorVersion / ! d ; s/.*MajorVersion *"\(.*\)"/\1/' VersionNum)
else
version=$(git rev-parse --short HEAD)
fi
echo "This is version: $version"
leafname="BasToTxt-$version.zip"
if [ -f /tmp/built,a91 ] ; then
cp /tmp/built,a91 "BasToTxt-$version.zip"
else
echo "No archive was built?"
exit 1
fi
echo "version=$version" >> $GITHUB_OUTPUT
echo "leafname=$leafname" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v3
with:
name: RISCOS-build
path: ${{ steps.version.outputs.leafname }}
# The artifact that is downloadable from the Actions is actually a zip of the artifacts
# that we supply. So it will be a regular Zip file containing a RISC OS Zip file.
build-ubuntu:
# The type of runner that the job will run on
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
leafname: ${{ steps.version.outputs.leafname }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Build bastotxt
run: |
cd posix
make
cd ..
- name: Rename the file we got
id: version
run: |
if [[ -f VersionNum ]] ; then
version=$(sed '/MajorVersion / ! d ; s/.*MajorVersion *"\(.*\)"/\1/' VersionNum)
else
version=$(git rev-parse --short HEAD)
fi
echo "This is version: $version"
leafname="bastotxt-ubuntu-$version"
if [ -f posix/bastotxt ] ; then
cp posix/bastotxt "bastotxt-ubuntu-$version"
else
echo "No binary was built?"
exit 1
fi
echo "version=$version" >> $GITHUB_OUTPUT
echo "leafname=$leafname" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v3
with:
name: Ubuntu-build
path: ${{ steps.version.outputs.leafname }}
# The release only triggers when the thing that was pushed was a tag starting with 'v'
release:
needs:
- build-riscos
- build-ubuntu
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download built RISC OS binary
uses: actions/download-artifact@v3
with:
name: RISCOS-build
- name: Download built Ubuntu binary
uses: actions/download-artifact@v3
with:
name: Ubuntu-build
- name: Create Release
id: create_release
uses: ncipollo/release-action@v1
with:
prerelease: false
draft: true
artifacts: "${{ needs.build-riscos.outputs.leafname }}","${{ needs.build-ubuntu.outputs.leafname }}"
artifactContentType: application/octet-stream