-
Notifications
You must be signed in to change notification settings - Fork 35
120 lines (118 loc) · 4.36 KB
/
Copy pathbuild-java.yml
File metadata and controls
120 lines (118 loc) · 4.36 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
name: Java
on:
push:
env:
ASSETS_URL: "https://api.github.com/repos/melpon/wandbox-builder/releases/178117233/assets"
UPLOAD_URL: "https://uploads.github.com/repos/melpon/wandbox-builder/releases/178117233/assets{?name,label}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
_asset:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.x"
- run: |
pip3 install requests
python3 get_asset_info.py ${{ env.ASSETS_URL }} --github_token ${{ env.GITHUB_TOKEN }} > asset_info.json
- name: Upload Artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: asset_info.json
path: asset_info.json
openjdk:
needs: [_asset]
strategy:
fail-fast: false
matrix:
version:
- jdk-22+36
- jdk-21+35
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/build-compiler
with:
name: ${{ github.job }}
version: ${{ matrix.version }}
upload_url: ${{ env.UPLOAD_URL }}
groovy:
needs: [_asset, openjdk]
strategy:
fail-fast: false
matrix:
version:
- 4.0.23 openjdk jdk-22+36
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/build-compiler
with:
name: ${{ github.job }}
version: ${{ matrix.version }}
upload_url: ${{ env.UPLOAD_URL }}
scala:
needs: [_asset, openjdk]
strategy:
fail-fast: false
matrix:
version:
- 3.5.1 openjdk jdk-22+36
- 3.3.4 openjdk jdk-22+36
- 2.13.15 openjdk jdk-22+36
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/build-compiler
with:
name: ${{ github.job }}
version: ${{ matrix.version }}
upload_url: ${{ env.UPLOAD_URL }}
_deploy:
needs:
- groovy
- openjdk
- scala
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
# SSH 秘密鍵の登録
- name: Register SSH key
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
mkdir -p $HOME/.ssh
echo "$SSH_PRIVATE_KEY" > $HOME/.ssh/id_ed25519
chmod 600 $HOME/.ssh/id_ed25519
# デプロイ先を設定する
- name: Add SSH config
env:
SSH_HOST: ${{ secrets.SSH_HOST_UBUNTU_24_04 }}
SSH_USER: ${{ secrets.SSH_USER }}
run: |
echo "Host wandbox-ubuntu-24.04" >> $HOME/.ssh/config
echo " HostName $SSH_HOST" >> $HOME/.ssh/config
echo " User $SSH_USER" >> $HOME/.ssh/config
echo " ServerAliveInterval 60" >> $HOME/.ssh/config
echo " TCPKeepAlive yes" >> $HOME/.ssh/config
ssh-keyscan -H $SSH_HOST >> $HOME/.ssh/known_hosts
# ソースをデプロイ先にコピーして、デプロイスクリプトを実行する
- id: deploy
name: Deploy
run: |
set -ex
COMMIT=`git log --format=%as.%h -n 1 HEAD`
ssh wandbox-ubuntu-24.04 'mkdir -p /opt/wandbox-data'
rsync -a -v . wandbox-ubuntu-24.04:/opt/wandbox-data/wandbox-builder
ssh wandbox-ubuntu-24.04 "python3 /opt/wandbox-data/wandbox-builder/deploy.py $GITHUB_WORKFLOW $COMMIT ${{ env.ASSETS_URL }} --github_token ${{ env.GITHUB_TOKEN }}"
- name: Generate Configuration
if: steps.deploy.outputs.deployed == 'true'
run: |
ssh wandbox-ubuntu-24.04 'mkdir -p /opt/wandbox-data/release/cattleshed-conf'
ssh wandbox-ubuntu-24.04 'python3 /opt/wandbox-data/wandbox-builder/cattleshed-conf/compilers.py > /opt/wandbox-data/release/cattleshed-conf/compilers.default'
- name: Restart Feline
if: steps.deploy.outputs.deployed == 'true'
run: |
ssh wandbox-ubuntu-24.04 'systemctl restart feline-master'
ssh wandbox-ubuntu-24.04 'systemctl restart feline-develop'