Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ jobs:
path: build/tinygo${{ steps.version.outputs.version }}.darwin-${{ matrix.goarch }}.tar.gz
archive: false
- name: Smoke tests
run: make smoketest TINYGO=$(PWD)/build/tinygo
run: make smoketest-quick TINYGO=$(PWD)/build/tinygo
test-macos-homebrew:
name: homebrew-install
runs-on: macos-latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ jobs:
- run: tinygo version
- run: make gen-device -j4
- run: go test -tags=llvm${{ env.LLVM }} -short -skip=TestErrors
- run: make smoketest XTENSA=0
- run: make smoketest-quick XTENSA=0
40 changes: 38 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,43 @@ jobs:
- run: make tinygo-test-wasip1-fast
- run: make tinygo-test-wasip2-fast
- run: make tinygo-test-wasm
- run: make smoketest
smoketest-linux:
# Build a binary for every supported board, using the binaries built in the
# build-linux job. This is the only job that runs the full smoke test. The
# result does not depend on the host OS, so the other jobs build a
# representative board for each architecture with smoketest-quick.
runs-on: ubuntu-latest
needs: build-linux
strategy:
fail-fast: false
matrix:
# Balanced with the measured build time of each group, so that the
# shards finish at about the same time.
group:
- smoketest-rp2xxx smoketest-selftest smoketest-wasm-sim
- smoketest-esp smoketest-riscv smoketest-flags
- smoketest-examples smoketest-nxp smoketest-pwm-usb smoketest-avr
- smoketest-samd smoketest-stm32 smoketest-nrf smoketest-wasm
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: true
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: '1.27.0'
cache: true
- name: Download release artifact
uses: actions/download-artifact@v8
with:
name: tinygo${{ needs.build-linux.outputs.version }}.linux-amd64.tar.gz
- name: Extract release tarball
run: |
mkdir -p ~/lib
tar -C ~/lib -xf tinygo${{ needs.build-linux.outputs.version }}.linux-amd64.tar.gz
ln -s ~/lib/tinygo/bin/tinygo ~/go/bin/tinygo
- run: make testchdir ${{ matrix.group }}
assert-test-linux:
# Run all tests that can run on Linux, with LLVM assertions enabled to catch
# potential bugs.
Expand Down Expand Up @@ -293,7 +329,7 @@ jobs:
echo "$(pwd)/build" >> $GITHUB_PATH
- name: Test stdlib packages
run: make tinygo-test
- run: make smoketest
- run: make smoketest-quick
- run: make wasmtest
- run: make tinygo-test-baremetal
- name: Check Go code formatting
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
# This build is already unzipped.
- name: Smoke tests
shell: bash
run: make smoketest TINYGO=$(PWD)/build/tinygo/bin/tinygo
run: make smoketest-quick TINYGO=$(PWD)/build/tinygo/bin/tinygo

stdlib-test-windows:
runs-on: windows-2022
Expand Down
7 changes: 5 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ on a different system like Mac.

## Using GNU Make

The static build of TinyGo is driven by GNUmakefile, which provides a help target for quick reference:
The static build of TinyGo is driven by GNUmakefile, which includes the topic
files in the `make/` directory (`config.mk`, `llvm.mk`, `gen-device.mk`,
`build.mk`, `test.mk`, `smoketest.mk`, `release.mk`, and `tools.mk`).
It provides a help target for quick reference:

% make help
clean Remove build directory
Expand Down Expand Up @@ -64,7 +67,7 @@ while producing binaries that are about as fast.
export CC=clang
export CXX=clang++

The Makefile includes a default configuration that is good for most users. It
`make/config.mk` holds a default configuration that is good for most users. It
builds a release version of LLVM (optimized, no asserts) and includes all
targets supported by TinyGo:

Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ RUN apt-get update && \
/tmp/*

COPY ./GNUmakefile /tinygo/GNUmakefile
COPY ./make /tinygo/make

RUN cd /tinygo/ && \
make llvm-source
Expand Down
Loading
Loading