Skip to content

Commit 8c18a3d

Browse files
committed
ci: add GitHub Actions build workflow with conda environment for Linux and macOS
1 parent 7db374f commit 8c18a3d

2 files changed

Lines changed: 105 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
build:
11+
name: Build (${{ matrix.os }})
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
matrix:
15+
os: [ubuntu-latest, macos-latest]
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up conda environment
21+
uses: conda-incubator/setup-miniconda@v3
22+
with:
23+
auto-activate-base: false
24+
activate-environment: s2t-env
25+
environment-file: environment.yml
26+
27+
- name: Install Bazel
28+
shell: bash -l {0}
29+
run: |
30+
# Install Bazelisk (manages Bazel versions)
31+
if [ "$RUNNER_OS" == "Linux" ]; then
32+
curl -Lo /tmp/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.20.0/bazelisk-linux-amd64
33+
elif [ "$RUNNER_OS" == "macOS" ]; then
34+
curl -Lo /tmp/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.20.0/bazelisk-darwin-amd64
35+
fi
36+
chmod +x /tmp/bazelisk
37+
sudo mv /tmp/bazelisk /usr/local/bin/bazel
38+
39+
- name: Configure Bazel
40+
shell: bash -l {0}
41+
run: |
42+
./configure.sh
43+
bazel --version
44+
45+
- name: Patch Apple CC toolchain (macOS only)
46+
if: runner.os == 'macOS'
47+
shell: bash -l {0}
48+
run: bazel build //:patch_local_config_apple_cc
49+
50+
- name: Build struct2tensor
51+
shell: bash -l {0}
52+
run: bazel build //struct2tensor:path --verbose_failures
53+
54+
- name: Build all targets
55+
if: runner.os == 'Linux'
56+
shell: bash -l {0}
57+
run: bazel build //...

environment.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: s2t-env-py311
2+
channels:
3+
- conda-forge
4+
dependencies:
5+
- python=3.11
6+
- pip
7+
- pip:
8+
- absl-py==2.4.0
9+
- altgraph==0.17.5
10+
- astunparse==1.6.3
11+
- certifi==2026.2.25
12+
- charset-normalizer==3.4.5
13+
- delocate==0.13.0
14+
- flatbuffers==25.12.19
15+
- gast==0.7.0
16+
- google-pasta==0.2.0
17+
- googleapis-common-protos==1.72.0
18+
- grpcio==1.78.0
19+
- h5py==3.16.0
20+
- idna==3.11
21+
- keras==3.13.2
22+
- libclang==18.1.1
23+
- macholib==1.16.4
24+
- markdown==3.10.2
25+
- markdown-it-py==4.0.0
26+
- markupsafe==3.0.3
27+
- mdurl==0.1.2
28+
- ml-dtypes==0.4.1
29+
- namex==0.1.0
30+
- numpy==1.26.4
31+
- opt-einsum==3.4.0
32+
- optree==0.19.0
33+
- protobuf==4.25.8
34+
- pyarrow==10.0.1
35+
- pygments==2.19.2
36+
- requests==2.32.5
37+
- rich==14.3.3
38+
- six==1.17.0
39+
- tensorboard==2.17.1
40+
- tensorboard-data-server==0.7.2
41+
- tensorflow==2.17.1
42+
- tensorflow-io-gcs-filesystem==0.37.1
43+
- tensorflow-metadata==1.17.3
44+
- termcolor==3.3.0
45+
- typing-extensions==4.15.0
46+
- urllib3==2.6.3
47+
- werkzeug==3.1.6
48+
- wrapt==2.1.2

0 commit comments

Comments
 (0)