Skip to content

Commit

Permalink
Merge pull request #6083 from A2va/cosmocc-ci
Browse files Browse the repository at this point in the history
Re-add cosmocc actions
  • Loading branch information
waruqi authored Jan 17, 2025
2 parents 217d4ad + c156795 commit ce35c1a
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/cosmocc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Cosmocc

on:
pull_request:
push:
release:
types: [published]

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-13]
arch: [x86_64]

runs-on: ${{ matrix.os }}

concurrency:
group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-Cosmocc-${{ matrix.os }}-${{ matrix.arch }}
cancel-in-progress: true

steps:
- uses: actions/checkout@v2
with:
submodules: true

- uses: little-core-labs/[email protected]
id: tagName

- name: Prepare local xmake
run: cp -rf . ../xmake-source

- uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: local#../xmake-source

- uses: bjia56/setup-cosmocc@main
with:
version: "4.0.2"

- name: Build
run: |
cd core
xmake f -p linux --cosmocc=y --embed=y -y -cvD
xmake -v
cd ..
- name: Prepare (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt update
sudo apt install -y ruby ruby-dev rubygems build-essential llvm libc++-dev
sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev
clang --version
- name: Prepare (macOS)
if: matrix.os == 'macos-13'
run: |
brew install dmd
brew install dub
# In the tests, cmake tries to use make from the cosmopolitan toolchain and fails, so uninstall it
- name: Remove cosmocc
if: matrix.os == 'macos-13'
run: |
INSTALL_DIR="${{runner.temp}}/cosmocc-4.0.2"
echo "Removing cosmocc from PATH"
echo "::remove-path::${INSTALL_DIR}/bin"
rm -r "${INSTALL_DIR}"
- name: Tests
run: |
ls -l core/build/
core/build/xmake --version
core/build/xmake lua -v -D tests/run.lua
- name: Artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: xmake-bundle.cosmocc.x86_64
path: core/build/xmake

- name: Publish bundle binary
if: github.event.action == 'published' && matrix.os == 'ubuntu-latest'
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: core/build/xmake
asset_name: xmake-bundle-${{ steps.tagName.outputs.tag }}.cosmocc.x86_64
asset_content_type: application/zip

0 comments on commit ce35c1a

Please sign in to comment.