Build Linux Artifacts #37
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Linux Dev | |
on: | |
workflow_dispatch: | |
inputs: | |
tags: | |
description: "Version tags" | |
env: | |
VERSION: 0.9.0 | |
jobs: | |
build: | |
strategy: | |
matrix: | |
go: [1.21.1] | |
runs-on: "ubuntu-22.04" | |
steps: | |
- name: Arm Build | |
run: | | |
sudo sh -c 'echo "deb http://cz.archive.ubuntu.com/ubuntu mantic main universe" >> /etc/apt/sources.list' | |
sudo apt-get update | |
sudo apt-get install -y libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev build-essential bison flex libssl-dev bc | |
sudo apt-get install -y gcc-arm-linux-gnueabi g++-arm-linux-gnueabi | |
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf | |
sudo apt-get install -y g++-aarch64-linux-gnu crossbuild-essential-arm64 | |
sudo apt-get install -y gcc-13-aarch64-linux-gnu | |
sudo apt-get install -y g++-13-aarch64-linux-gnu | |
- name: Inspect Tools | |
run: | | |
ls -l /usr/lib/gcc-cross/aarch64-linux-gnu/ | |
- name: Install coscmd | |
run: sudo pip3 install coscmd | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- name: Setup Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Checkout Kun | |
uses: actions/checkout@v3 | |
with: | |
repository: yaoapp/kun | |
path: kun | |
- name: Checkout Xun | |
uses: actions/checkout@v3 | |
with: | |
repository: yaoapp/xun | |
path: xun | |
- name: Checkout Gou | |
uses: actions/checkout@v3 | |
with: | |
repository: yaoapp/gou | |
# ref: dc3d98411f61e21cf775e4c82d92d5ac2acfc03c | |
path: gou | |
- name: Checkout V8Go | |
uses: actions/checkout@v3 | |
with: | |
repository: rogchap/v8go | |
# ref: aac4923ed74083e58ae7b42b1acb0fa0d11a26cb | |
path: v8go | |
- name: Checkout XGen v1.0 | |
uses: actions/checkout@v3 | |
with: | |
repository: yaoapp/xgen | |
#ref: 408470b84c9d6bb8ed988b545b6e46ffc2872014 | |
path: xgen-v1.0 | |
- name: Checkout Yao-Init | |
uses: actions/checkout@v3 | |
with: | |
repository: yaoapp/yao-init | |
path: yao-init | |
- name: Move Kun, Xun, Gou, UI, V8Go | |
run: | | |
mv kun ../ | |
mv xun ../ | |
mv gou ../ | |
mv v8go ../ | |
mv xgen-v1.0 ../ | |
mv yao-init ../ | |
ls -l . | |
ls -l ../ | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Setup Go ${{ matrix.go }} | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Setup Go Tools | |
run: | | |
make tools | |
- name: Get Version | |
run: | | |
echo VERSION=$(cat share/const.go |grep 'const VERSION' | awk '{print $4}' | sed "s/\"//g") >> $GITHUB_ENV | |
- name: Make Artifacts Linux | |
run: | | |
make artifacts-linux | |
mv dist/release/yao-$VERSION-dev-linux-arm64 dist/release/yao-$VERSION-unstable-linux-arm64 | |
mv dist/release/yao-$VERSION-dev-linux-amd64 dist/release/yao-$VERSION-unstable-linux-amd64 | |
- name: Configure COS For Silicon Valley | |
env: | |
SECRET_ID: ${{ secrets.COS_ID }} | |
SECRET_KEY: ${{ secrets.COS_KEY }} | |
BUCKET: release-sv-1252011659 | |
REGION: na-siliconvalley | |
run: | | |
coscmd config -a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION | |
- name: Push To Silicon Valley | |
run: | | |
for file in ./dist/release/*; do coscmd upload $file /archives/; done; | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: yao-linux | |
path: | | |
dist/release/* | |
# - name: Configure COS For Beijing | |
# env: | |
# SECRET_ID: ${{ secrets.COS_ID }} | |
# SECRET_KEY: ${{ secrets.COS_KEY }} | |
# BUCKET: release-bj-1252011659 | |
# REGION: ap-beijing | |
# run: | | |
# coscmd config -a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION | |
# - name: Push To Beijing | |
# run: | | |
# for file in ./dist/release/*; do coscmd upload $file /archives/; done; |