-
Notifications
You must be signed in to change notification settings - Fork 380
143 lines (121 loc) · 3.81 KB
/
build.yaml
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
name: CI
on: [push, pull_request, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build Anura
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Install dependencies
run: sudo apt update && sudo apt install -y git build-essential clang default-jre
- name: Pull submodules
run: git submodule update --init
- name: Install Rust
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: Pack Anura
run: source "$HOME/.cargo/env" && make static
- name: Upload Anura Static Artifact
uses: actions/upload-artifact@v4
with:
name: anura-static
path: static/*
retention-days: 90
- name: Upload Anura Types Artifact
uses: actions/upload-artifact@v4
with:
name: anura-types
path: anuraos-types/*
retention-days: 90
upload:
name: Upload release
runs-on: ubuntu-latest
needs: build
permissions: write-all
if: github.ref == 'refs/heads/main'
steps:
- name: Delete old release and tag
uses: dev-drprasad/delete-tag-and-release@v1.0.1
with:
delete_release: true
tag_name: latest
github_token: ${{ github.token }}
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: anura-static
path: ./static
- name: Zip anura Release
run: cd static && zip -r ../anura.zip . && cd ..
- name: Release to GitHub
uses: ncipollo/release-action@v1
with:
name: Continuous Build
tag: latest
commit: main
body: "${{ github.event.head_commit.url }} ${{ github.event.head_commit.message }}"
artifacts: "anura.zip"
prerelease: true
publish:
name: Publish anura-types to NPM
runs-on: ubuntu-latest
needs: build
permissions: write-all
steps:
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: "20"
registry-url: "https://registry.npmjs.org"
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: anura-types
path: .
- name: Check the version
id: check
run: |
CURRENT_VERSION=$(jq -r .version package.json)
echo "Current version: $CURRENT_VERSION"
LATEST_VERSION=$(npm view @mercuryworkshop/anuraos-types version || echo "0.0.0")
echo "Latest NPM version: $LATEST_VERSION"
if [ "$LATEST_VERSION" != "$CURRENT_VERSION" ];
then
echo "Version changed"
echo "version_changed=true" >> $GITHUB_OUTPUT
echo "new_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
else
echo "Version not changed"
echo "version_changed=false" >> $GITHUB_OUTPUT
fi
- name: Publish
if: steps.check.outputs.version_changed == 'true'
run: npm publish --access public --no-git-checks
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
pages:
name: Upload to Github Pages
runs-on: ubuntu-latest
needs: build
permissions: write-all
if: github.ref == 'refs/heads/main'
steps:
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: anura-static
path: ./static
- name: upload pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./static"
- name: deploy to github
id: deployment
uses: actions/deploy-pages@v4