2024-02-06 23:47:29 +08:00
|
|
|
name: generator-tool
|
|
|
|
on: push
|
2023-06-08 22:39:03 +08:00
|
|
|
jobs:
|
2024-02-06 23:47:29 +08:00
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container: debian:10.13
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Cache dependencies
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
|
|
|
key: debian-10.13-clang16
|
|
|
|
path: |
|
|
|
|
${{github.workspace}}/build/_deps
|
|
|
|
|
|
|
|
- name: Install build tools
|
|
|
|
run: |
|
|
|
|
apt-get update
|
|
|
|
env DEBIAN_FRONTEND=noninteractive \
|
|
|
|
apt-get install -qy --no-install-recommends \
|
|
|
|
build-essential \
|
|
|
|
ca-certificates \
|
|
|
|
cmake \
|
|
|
|
file \
|
|
|
|
git \
|
|
|
|
gnupg \
|
|
|
|
libc6-dev \
|
|
|
|
lsb-release \
|
|
|
|
make \
|
|
|
|
ninja-build \
|
|
|
|
software-properties-common \
|
|
|
|
wget
|
|
|
|
wget https://apt.llvm.org/llvm.sh
|
|
|
|
chmod +x llvm.sh
|
|
|
|
./llvm.sh 16 all
|
|
|
|
|
|
|
|
- name: Configure CMake
|
|
|
|
run: |
|
|
|
|
mkdir -p "$GITHUB_WORKSPACE/build"
|
|
|
|
cmake \
|
|
|
|
-S "$GITHUB_WORKSPACE" \
|
|
|
|
-B "$GITHUB_WORKSPACE/build" \
|
|
|
|
-G Ninja \
|
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
-DSAPI_ENABLE_CLANG_TOOL=ON \
|
|
|
|
-DSAPI_ENABLE_CLANG_TOOL_STATIC=ON
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cmake \
|
|
|
|
--build "$GITHUB_WORKSPACE/build" \
|
|
|
|
--config Release \
|
|
|
|
--target sapi_generator_tool
|
|
|
|
( \
|
|
|
|
cd "$GITHUB_WORKSPACE/build"; \
|
|
|
|
mv sandboxed_api/tools/clang_generator/sapi_generator_tool \
|
|
|
|
sapi_generator_tool-linux-x86_64; \
|
|
|
|
)
|
|
|
|
|
|
|
|
- name: Upload Build Artifact
|
|
|
|
uses: actions/upload-artifact@v3.1.2
|
|
|
|
with:
|
|
|
|
name: sapi_generator_tool-linux
|
|
|
|
path: ${{github.workspace}}/build/sapi_generator_tool-linux-x86_64
|
|
|
|
|
2023-06-08 22:39:03 +08:00
|
|
|
prerelease:
|
2024-02-06 23:47:29 +08:00
|
|
|
needs: build
|
2023-06-08 22:39:03 +08:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
env:
|
|
|
|
ARTIFACT_NAME: sapi_generator_tool-linux
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Prepare environment
|
|
|
|
run: mkdir -p "$GITHUB_WORKSPACE/build"
|
|
|
|
|
|
|
|
- name: Download Build Artifact
|
|
|
|
uses: actions/github-script@v6
|
|
|
|
with:
|
|
|
|
script: |
|
|
|
|
let artifactName = process.env.ARTIFACT_NAME;
|
|
|
|
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
|
|
|
owner: context.repo.owner,
|
|
|
|
repo: context.repo.repo,
|
|
|
|
run_id: context.payload.workflow_run.id,
|
|
|
|
});
|
|
|
|
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
|
|
|
|
return artifact.name == artifactName
|
|
|
|
})[0];
|
|
|
|
let download = await github.rest.actions.downloadArtifact({
|
|
|
|
owner: context.repo.owner,
|
|
|
|
repo: context.repo.repo,
|
|
|
|
artifact_id: matchArtifact.id,
|
|
|
|
archive_format: 'zip',
|
|
|
|
});
|
|
|
|
let fs = require('fs');
|
|
|
|
fs.writeFileSync(
|
|
|
|
`${process.env.GITHUB_WORKSPACE}/build/${artifactName}.zip`,
|
|
|
|
Buffer.from(download.data)
|
|
|
|
);
|
|
|
|
|
|
|
|
- name: "Repackage as *-<arch>.tar.gz"
|
|
|
|
run: |
|
|
|
|
( \
|
|
|
|
cd "$GITHUB_WORKSPACE/build"; \
|
|
|
|
unzip "${ARTIFACT_NAME}.zip"; \
|
|
|
|
tar czf sapi_generator_tool-linux-x86_64.tar.gz \
|
|
|
|
sapi_generator_tool-linux-x86_64
|
|
|
|
)
|
|
|
|
|
|
|
|
- name: Create Pre-release
|
|
|
|
uses: marvinpinto/action-automatic-releases@v1.2.1
|
|
|
|
with:
|
|
|
|
repo_token: "${{secrets.GITHUB_TOKEN}}"
|
|
|
|
automatic_release_tag: "latest"
|
|
|
|
prerelease: true
|
|
|
|
files: |
|
|
|
|
${{github.workspace}}/build/sapi_generator_tool-linux-x86_64.tar.gz
|
2024-02-06 23:47:29 +08:00
|
|
|
|