Skip to content

Commit 8b834d1

Browse files
committed
Combine linux, linux-musl, and android release pipeline
1 parent b843b3b commit 8b834d1

File tree

5 files changed

+69
-178
lines changed

5 files changed

+69
-178
lines changed

.github/util/setup-qemu/action.yml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/workflows/build-android.yml

Lines changed: 0 additions & 72 deletions
This file was deleted.

.github/workflows/build-linux-musl.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

.github/workflows/build-linux.yml

Lines changed: 68 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,81 +14,123 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
include:
17-
- arch: x64
17+
- image: docker.io/library/dart
1818
platform: linux/amd64
19-
- arch: ia32
19+
target: linux-x64
20+
- image: docker.io/library/dart
2021
platform: linux/amd64
21-
- arch: arm64
22+
target: linux-ia32
23+
- image: docker.io/library/dart
2224
platform: linux/arm64
23-
- arch: arm
25+
target: linux-arm64
26+
- image: docker.io/library/dart
2427
platform: linux/arm/v7
25-
- arch: riscv64
28+
target: linux-arm
29+
- image: docker.io/library/debian:unstable-slim
2630
platform: linux/riscv64
31+
target: linux-riscv64
32+
- image: ghcr.io/dart-musl/dart
33+
platform: linux/amd64
34+
target: linux-x64-musl
35+
- image: ghcr.io/dart-musl/dart
36+
platform: linux/amd64
37+
target: linux-ia32-musl
38+
- image: ghcr.io/dart-musl/dart
39+
platform: linux/arm64
40+
target: linux-arm64-musl
41+
- image: ghcr.io/dart-musl/dart
42+
platform: linux/arm/v7
43+
target: linux-arm-musl
44+
- image: ghcr.io/dart-musl/dart
45+
platform: linux/riscv64
46+
target: linux-riscv64-musl
47+
- image: ghcr.io/dart-android/dart
48+
platform: linux/amd64
49+
target: android-x64
50+
- image: ghcr.io/dart-android/dart
51+
platform: linux/amd64
52+
target: android-ia32
53+
- image: ghcr.io/dart-android/dart
54+
platform: linux/arm64
55+
target: android-arm64
56+
- image: ghcr.io/dart-android/dart
57+
platform: linux/arm64
58+
target: android-arm
59+
- image: ghcr.io/dart-android/dart
60+
platform: linux/riscv64
61+
target: android-riscv64
2762

2863
steps:
2964
- uses: actions/checkout@v4
3065

66+
- uses: ./.github/util/initialize
67+
with: {github-token: "${{ github.token }}"}
68+
3169
- name: Set up QEMU
32-
uses: ./.github/util/setup-qemu
70+
run: docker run --privileged --rm registry.fedoraproject.org/fedora-minimal /bin/sh -c "microdnf install --assumeyes --nodocs --setopt=install_weak_deps=False qemu-user-static systemd-udev && mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc && /usr/lib/systemd/systemd-binfmt --unregister && /usr/lib/systemd/systemd-binfmt"
3371

34-
- name: Compile Protobuf
72+
- name: Build
73+
if: matrix.image != 'ghcr.io/dart-android/dart' && matrix.image != 'docker.io/library/debian:unstable-slim'
3574
run: |
3675
docker run --rm -i \
76+
--platform ${{ matrix.platform }} \
3777
--volume "$PWD:$PWD" \
3878
--workdir "$PWD" \
39-
docker.io/library/dart <<'EOF'
79+
${{ matrix.image }} <<'EOF'
4080
set -e
41-
curl -fsSL -H "Authorization: Bearer ${{ github.token }}" "https://github.com/bufbuild/buf/releases/latest/download/buf-$(uname -s)-$(uname -m).tar.gz" | tar -xzC /usr/local --strip-components 1
4281
dart pub get
43-
dart run grinder protobuf
82+
dart run grinder pkg-standalone-${{ matrix.target }}
4483
EOF
4584
4685
- name: Build
47-
if: matrix.arch != 'riscv64'
86+
if: matrix.image == 'ghcr.io/dart-android/dart'
4887
run: |
4988
docker run --rm -i \
50-
--platform ${{ matrix.platform }} \
51-
--volume "$PWD:$PWD" \
52-
--workdir "$PWD" \
53-
docker.io/library/dart:latest <<'EOF'
89+
--privileged \
90+
--platform ${{ matrix.platform }} \
91+
--volume "$PWD:$PWD" \
92+
--workdir "$PWD" \
93+
${{ matrix.image }} <<'EOF'
5494
set -e
95+
export DART_SDK=/system/${{ endsWith(matrix.target, '64') && 'lib64' || 'lib' }}/dart
96+
export PATH=$DART_SDK/bin:$PATH
5597
dart pub get
56-
dart run grinder pkg-standalone-linux-${{ matrix.arch }}
98+
dart run grinder pkg-standalone-${{ matrix.target }}
5799
EOF
58100
59101
# https://github.com/dart-lang/dart-docker/issues/96#issuecomment-1669860829
60102
# There is no official riscv64 dart container image yet, build on debian:unstable instead.
61103
# The setup is adopted from: https://github.com/dart-lang/dart-docker/blob/main/Dockerfile-debian.template
62-
- name: Build riscv64
63-
if: matrix.arch == 'riscv64'
104+
- name: Build
105+
if: matrix.image == 'docker.io/library/debian:unstable-slim'
64106
run: |
65107
DART_CHANNEL=stable
66108
DART_VERSION=$(curl -fsSL https://storage.googleapis.com/dart-archive/channels/$DART_CHANNEL/release/latest/VERSION | yq .version)
67-
curl -fsSLO https://storage.googleapis.com/dart-archive/channels/$DART_CHANNEL/release/$DART_VERSION/sdk/dartsdk-linux-${{ matrix.arch }}-release.zip
109+
curl -fsSLO "https://storage.googleapis.com/dart-archive/channels/$DART_CHANNEL/release/$DART_VERSION/sdk/dartsdk-${{ matrix.target }}-release.zip"
68110
69111
docker run --rm -i \
70-
--platform ${{ matrix.platform }} \
71-
--volume "$PWD:$PWD" \
72-
--workdir "$PWD" \
73-
docker.io/library/debian:unstable-slim <<'EOF'
112+
--platform ${{ matrix.platform }} \
113+
--volume "$PWD:$PWD" \
114+
--workdir "$PWD" \
115+
${{ matrix.image }} <<'EOF'
74116
set -e
75117
apt-get update
76118
apt-get install -y --no-install-recommends ca-certificates curl dnsutils git openssh-client unzip
77119
78120
export DART_SDK=/usr/lib/dart
79121
export PATH=$DART_SDK/bin:/root/.pub-cache/bin:$PATH
80122
81-
SDK="dartsdk-linux-${{ matrix.arch }}-release.zip"
123+
SDK="dartsdk-${{ matrix.target }}-release.zip"
82124
unzip "$SDK" && mv dart-sdk "$DART_SDK" && rm "$SDK"
83125
84126
dart pub get
85-
dart run grinder pkg-standalone-linux-${{ matrix.arch }}
127+
dart run grinder pkg-standalone-${{ matrix.target }}
86128
EOF
87129
88130
- name: Upload Artifact
89131
uses: actions/upload-artifact@v4
90132
with:
91-
name: build-linux-${{ matrix.arch }}
133+
name: build-${{ matrix.target }}
92134
path: build/*.tar.gz
93135
if-no-files-found: error
94136
compression-level: 0

.github/workflows/release.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,10 @@ on:
44
workflow_call:
55

66
jobs:
7-
build_android:
8-
uses: ./.github/workflows/build-android.yml
9-
secrets: inherit
10-
117
build_linux:
128
uses: ./.github/workflows/build-linux.yml
139
secrets: inherit
1410

15-
build_linux_musl:
16-
uses: ./.github/workflows/build-linux-musl.yml
17-
secrets: inherit
18-
1911
build_macos:
2012
uses: ./.github/workflows/build-macos.yml
2113
secrets: inherit
@@ -27,7 +19,7 @@ jobs:
2719
release_github:
2820
name: Release Github
2921
runs-on: ubuntu-latest
30-
needs: [build_android, build_linux, build_linux_musl, build_macos, build_windows]
22+
needs: [build_linux, build_macos, build_windows]
3123

3224
steps:
3325
- uses: actions/checkout@v4

0 commit comments

Comments
 (0)