Skip to content

Merge pull request #135 from Superkooka/feat/update-php-version #49

Merge pull request #135 from Superkooka/feat/update-php-version

Merge pull request #135 from Superkooka/feat/update-php-version #49

Workflow file for this run

name: Java
on:
push:
env:
ASSETS_URL: "https://api.github.com/repos/melpon/wandbox-builder/releases/32402124/assets"
UPLOAD_URL: "https://uploads.github.com/repos/melpon/wandbox-builder/releases/32402124/assets{?name,label}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
_asset:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
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@v2
with:
name: asset_info.json
path: asset_info.json
groovy:
needs: [_asset, openjdk]
strategy:
fail-fast: false
matrix:
version:
- 3.0.8 openjdk jdk-15.0.3+2
- 2.5.14 openjdk jdk-15.0.3+2
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: asset_info.json
path: asset_info.json
- id: setup
run: ./ga-build/${{ github.job }}/run.sh setup ${{ matrix.version }}
- id: install
if: steps.setup.outputs.need_install == 'true'
run: ./ga-build/${{ github.job }}/run.sh install ${{ matrix.version }}
- uses: actions/upload-release-asset@v1
if: steps.setup.outputs.need_install == 'true'
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ${{ steps.install.outputs.package_path }}
asset_name: ${{ steps.install.outputs.package_filename }}
asset_content_type: application/gzip
openjdk:
needs: [_asset]
strategy:
fail-fast: false
matrix:
version:
- jdk-15.0.3+2
- jdk-14.0.2+12
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: asset_info.json
path: asset_info.json
- id: setup
run: ./ga-build/${{ github.job }}/run.sh setup ${{ matrix.version }}
- id: install
if: steps.setup.outputs.need_install == 'true'
run: ./ga-build/${{ github.job }}/run.sh install ${{ matrix.version }}
- uses: actions/upload-release-asset@v1
if: steps.setup.outputs.need_install == 'true'
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ${{ steps.install.outputs.package_path }}
asset_name: ${{ steps.install.outputs.package_filename }}
asset_content_type: application/gzip
scala:
needs: [_asset, openjdk]
strategy:
fail-fast: false
matrix:
version:
- 2.13.5 openjdk jdk-15.0.3+2
- 2.12.13 openjdk jdk-15.0.3+2
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: asset_info.json
path: asset_info.json
- id: setup
run: ./ga-build/${{ github.job }}/run.sh setup ${{ matrix.version }}
- id: install
if: steps.setup.outputs.need_install == 'true'
run: ./ga-build/${{ github.job }}/run.sh install ${{ matrix.version }}
- uses: actions/upload-release-asset@v1
if: steps.setup.outputs.need_install == 'true'
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ${{ steps.install.outputs.package_path }}
asset_name: ${{ steps.install.outputs.package_filename }}
asset_content_type: application/gzip
_deploy:
needs:
- groovy
- openjdk
- scala
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
# 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 }}
SSH_USER: ${{ secrets.SSH_USER }}
run: |
echo "Host wandbox" >> $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 'mkdir -p /opt/wandbox-data'
rsync -a -v . wandbox:/opt/wandbox-data/wandbox-builder
ssh wandbox "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 'mkdir -p /opt/wandbox-data/release/cattleshed-conf'
ssh wandbox 'python3 /opt/wandbox-data/wandbox-builder/cattleshed-conf/compilers.py > /opt/wandbox-data/release/cattleshed-conf/compilers.default'
- name: Restart Cattleshed
if: steps.deploy.outputs.deployed == 'true'
run: |
ssh wandbox 'systemctl restart cattleshed-master'
ssh wandbox 'systemctl restart cattleshed-develop'
sleep 30
- name: Restart Kennel
if: steps.deploy.outputs.deployed == 'true'
run: |
ssh wandbox 'systemctl restart kennel-master'
ssh wandbox 'systemctl restart kennel-develop'