mirror of https://github.com/openXC7/prjxray.git
Setup connection to Xilinx license server.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
This commit is contained in:
parent
bc38e48ebc
commit
0c2ea87927
|
|
@ -17,6 +17,8 @@ jobs:
|
|||
Pipeline:
|
||||
if: ${{ !(github.event_name != 'pull_request' && github.actor == 'dependabot[bot]') }}
|
||||
uses: ./.github/workflows/Pipeline.yml
|
||||
secrets:
|
||||
LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }}
|
||||
|
||||
|
||||
Automerge:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ name: Pipeline
|
|||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
LICENSE_TUNNEL_KEY_DATA:
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
|
||||
|
|
@ -20,6 +23,7 @@ jobs:
|
|||
ALLOW_ROOT: true
|
||||
GHA_EXTERNAL_DISK: "tools"
|
||||
XILINX_LOCAL_USER_DATA: "no"
|
||||
LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }}
|
||||
|
||||
steps:
|
||||
|
||||
|
|
@ -31,8 +35,30 @@ jobs:
|
|||
run: |
|
||||
DEBIAN_FRONTEND=noninteractive apt update -qq
|
||||
DEBIAN_FRONTEND=noninteractive apt install -qq -y \
|
||||
bash bison build-essential ca-certificates clang-format cmake psmisc \
|
||||
colordiff coreutils git flex python3 python3-dev python3-venv xsltproc libtinfo5
|
||||
bash \
|
||||
bison \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
clang-format \
|
||||
cmake \
|
||||
colordiff \
|
||||
coreutils \
|
||||
flex \
|
||||
git \
|
||||
iproute2 \
|
||||
iputils-ping \
|
||||
libtinfo5 \
|
||||
netcat-openbsd \
|
||||
psmisc \
|
||||
python3 \
|
||||
python3-dev \
|
||||
python3-venv \
|
||||
xsltproc
|
||||
|
||||
- name: Xilinx Setup
|
||||
env:
|
||||
LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }}
|
||||
run: .github/workflows/scripts/xilinx.sh
|
||||
|
||||
- name: Build
|
||||
run: make build --output-sync=target --warn-undefined-variables -j$(nproc)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,117 @@
|
|||
#!/bin/bash
|
||||
# Copyright (C) 2017-2020 The Project X-Ray Authors.
|
||||
#
|
||||
# Use of this source code is governed by a ISC-style
|
||||
# license that can be found in the LICENSE file or at
|
||||
# https://opensource.org/licenses/ISC
|
||||
#
|
||||
# SPDX-License-Identifier: ISC
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "Xilinx proprietary toolchain setup."
|
||||
echo "----------------------------------------"
|
||||
|
||||
echo
|
||||
echo "Fix up the Xilinx configuration directory"
|
||||
echo "----------------------------------------"
|
||||
mkdir -p ~/.Xilinx
|
||||
ls -l ~/.Xilinx
|
||||
#sudo chown -R $USER ~/.Xilinx
|
||||
|
||||
export XILINX_LOCAL_USER_DATA=no
|
||||
echo "----------------------------------------"
|
||||
|
||||
echo
|
||||
echo "Select Xilinx Vivado version"
|
||||
echo "----------------------------------------"
|
||||
(
|
||||
set -e
|
||||
cd /opt
|
||||
if [ x"$XRAY_SETTINGS" = x"kintex7" ]; then
|
||||
echo "Using Xilinx Vivado Design Edition for $XRAY_SETTINGS build."
|
||||
echo
|
||||
echo "Making /opt mount rw"
|
||||
sudo mount -o remount,rw /opt
|
||||
echo
|
||||
echo "Replacing /opt/Xilinx link."
|
||||
sudo rm -f Xilinx
|
||||
sudo ln -s Xilinx-design Xilinx
|
||||
ls -l Xilinx
|
||||
echo
|
||||
echo "Making /opt mount ro"
|
||||
sudo mount -o remount,ro /opt
|
||||
echo
|
||||
else
|
||||
echo "Using Xilinx Vivado WebPack Edition for $XRAY_SETTINGS build."
|
||||
ls -l Xilinx
|
||||
fi
|
||||
)
|
||||
echo "----------------------------------------"
|
||||
|
||||
|
||||
echo
|
||||
echo "List /opt directory"
|
||||
echo "----------------------------------------"
|
||||
ls -l /opt
|
||||
echo "----------------------------------------"
|
||||
|
||||
# Create a tunnel to the server which has the Xilinx licenses and port forward
|
||||
# them.
|
||||
echo
|
||||
echo "Setting up license server tunnel"
|
||||
echo "----------------------------------------"
|
||||
if [ ! -z "$LICENSE_TUNNEL_KEY_DATA" ]; then
|
||||
LICENSE_TUNNEL_KEY=~/.Xilinx/xilinx-tunnel-key
|
||||
LICENSE_TUNNEL_HOST=10.138.0.2
|
||||
echo $LICENSE_TUNNEL_KEY_DATA | base64 --decode > $LICENSE_TUNNEL_KEY
|
||||
|
||||
echo "SSH Key for license server tunnel should be found @ $LICENSE_TUNNEL_KEY"
|
||||
ls -l $LICENSE_TUNNEL_KEY || true
|
||||
|
||||
echo
|
||||
echo "Xilinx license server ssh key found, setting up tunnel"
|
||||
echo
|
||||
|
||||
echo
|
||||
echo "Checking $LICENSE_TUNNEL_HOST is up"
|
||||
ip addr show
|
||||
echo "ping: ---------"
|
||||
ping -c 5 $LICENSE_TUNNEL_HOST
|
||||
echo "port: ---------"
|
||||
nc -zv $LICENSE_TUNNEL_HOST 22
|
||||
echo "---------"
|
||||
echo
|
||||
|
||||
chmod 600 $LICENSE_TUNNEL_KEY
|
||||
cat <<EOF > ssh_config
|
||||
Host xilinx-license
|
||||
HostName $LICENSE_TUNNEL_HOST
|
||||
User kokoro
|
||||
IdentityFile $LICENSE_TUNNEL_KEY
|
||||
StrictHostKeyChecking no
|
||||
ExitOnForwardFailure yes
|
||||
# SessionType none
|
||||
LocalForward localhost:2100 172.18.0.3:2100
|
||||
LocalForward localhost:2101 172.18.0.3:2101
|
||||
EOF
|
||||
echo "127.0.0.1 xlic.int" | sudo tee -a /etc/hosts
|
||||
|
||||
export GIT_SSH_COMMAND="ssh -F $(pwd)/ssh_config -f -N"
|
||||
${GIT_SSH_COMMAND} xilinx-license
|
||||
|
||||
(
|
||||
source /opt/Xilinx/Vivado/2017.2/settings64.sh
|
||||
export PATH=/opt/Xilinx/Vivado/2017.2/bin/unwrapped/lnx64.o:$PATH
|
||||
echo "-----"
|
||||
lmutil lmstat -a -c 2100@localhost -i || true
|
||||
echo "-----"
|
||||
)
|
||||
|
||||
export XILINXD_LICENSE_FILE=2100@localhost
|
||||
|
||||
else
|
||||
echo
|
||||
echo "**No** Xilinx license server ssh key found."
|
||||
fi
|
||||
echo "----------------------------------------"
|
||||
Loading…
Reference in New Issue