Skip to content

Commit 8ef38eb

Browse files
authored
Merge pull request #12 from MillerTechnologyPeru/feature/docker
Update Docker images
2 parents 4d4d8b6 + d484de4 commit 8ef38eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+482
-1317
lines changed

.devcontainer/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# [Choice] Swift version: 5.6-focal, 5.5, 5.4, 5.3, 5.2, 5.1, 4.2
2-
ARG VARIANT=6.0.2-jammy
2+
ARG VARIANT=6.0.3-jammy
33
FROM swift:${VARIANT}
44

55
# [Option] Install zsh
66
ARG INSTALL_ZSH="true"
7+
78
# [Option] Upgrade OS packages to their latest versions
89
ARG UPGRADE_PACKAGES="false"
910

@@ -46,3 +47,4 @@ RUN /bin/bash /tmp/library-scripts/install-swift.sh \
4647
COPY build-scripts/download-buildroot.sh /tmp/build-scripts/
4748
RUN /bin/bash /tmp/build-scripts/download-buildroot.sh \
4849
&& rm -rf /var/lib/apt/lists/* /tmp/build-scripts
50+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Paths
5+
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
6+
7+
# Build
8+
cd $BUILDROOT_DIR
9+
make source
10+
make libbsd-build
11+
make libxml2-build
12+
make openssl-build
13+
make libcurl-build
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Configurable
5+
SWIFT_BUILDROOT="${SWIFT_BUILDROOT:=$(pwd)}"
6+
DEFCONFIG="${DEFCONFIG:=swift_arm64_defconfig}"
7+
8+
# Create Dockerfile
9+
DOCKER_FILE_ARCH=$SWIFT_BUILDROOT/.devcontainer/Dockerfile-$DEFCONFIG
10+
rm -rf $DOCKER_FILE_ARCH
11+
echo "FROM colemancda/buildroot-swift" >> $DOCKER_FILE_ARCH
12+
echo "ENV DEFCONFIG=${DEFCONFIG}" >> $DOCKER_FILE_ARCH
13+
echo "ENV SWIFT_NATIVE_TOOLS=/workspaces/swift/usr/bin" >> $DOCKER_FILE_ARCH
14+
echo "ENV SWIFT_LLVM_DIR=/workspaces/llvm" >> $DOCKER_FILE_ARCH
15+
echo "ENV SWIFT_BUILDROOT=/workspaces/buildroot-swift" >> $DOCKER_FILE_ARCH
16+
echo "ENV BUILDROOT_RELEASE=2024.02.9" >> $DOCKER_FILE_ARCH
17+
echo "ENV BUILDROOT_DIR=/workspaces/buildroot" >> $DOCKER_FILE_ARCH
18+
echo "COPY . /workspaces/buildroot-swift/" >> $DOCKER_FILE_ARCH
19+
echo "COPY .devcontainer/build-scripts/configure.sh /tmp/build-scripts/" >> $DOCKER_FILE_ARCH
20+
echo "RUN /bin/bash /tmp/build-scripts/configure.sh" >> $DOCKER_FILE_ARCH
21+
echo "COPY .devcontainer/build-scripts/fetch-sources.sh /tmp/build-scripts/" >> $DOCKER_FILE_ARCH
22+
echo "RUN /bin/bash /tmp/build-scripts/fetch-sources.sh" >> $DOCKER_FILE_ARCH
23+
echo "COPY .devcontainer/build-scripts/build-host-tools.sh /tmp/build-scripts/" >> $DOCKER_FILE_ARCH
24+
echo "RUN /bin/bash /tmp/build-scripts/build-host-tools.sh" >> $DOCKER_FILE_ARCH
25+
echo "COPY .devcontainer/build-scripts/build-toolchain.sh /tmp/build-scripts/" >> $DOCKER_FILE_ARCH
26+
echo "RUN /bin/bash /tmp/build-scripts/build-toolchain.sh" >> $DOCKER_FILE_ARCH
27+
echo "COPY .devcontainer/build-scripts/build-base.sh /tmp/build-scripts/" >> $DOCKER_FILE_ARCH
28+
echo "RUN /bin/bash /tmp/build-scripts/build-base.sh" >> $DOCKER_FILE_ARCH
29+
30+
# Build Docker image
31+
docker build -t colemancda/buildroot-swift:$DEFCONFIG --file $DOCKER_FILE_ARCH .
32+
docker push colemancda/buildroot-swift:$DEFCONFIG
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Paths
5+
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
6+
7+
# Build
8+
cd $BUILDROOT_DIR
9+
make host-swift-build
10+
make host-cmake-build
11+
make host-util-linux-build
12+
make host-libtool-build
13+
make host-autoconf-build
14+
make host-automake-build
15+
make host-libzlib-build
16+
make host-zlib-build
17+
make host-attr-build
18+
make host-acl-build
19+
make host-fakeroot-build
20+
make host-dosfstools-build
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Paths
5+
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
6+
7+
# Build
8+
cd $BUILDROOT_DIR
9+
make toolchain

.devcontainer/build-scripts/build.sh

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,19 @@
22
set -e
33

44
# Configurable
5-
SRC_ROOT="${SRC_ROOT:=$(pwd)}"
6-
DEFCONFIG="${DEFCONFIG:=imx6slevk_swift_defconfig}"
5+
SWIFT_BUILDROOT="${SWIFT_BUILDROOT:=$(pwd)}"
6+
DEFCONFIG="${DEFCONFIG:=swift_arm64_defconfig}"
77
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
88
SWIFT_NATIVE_TOOLS="${SWIFT_NATIVE_TOOLS:=/workspaces/swift/usr/bin}"
99
SWIFT_LLVM_DIR="${SWIFT_LLVM_DIR:=/workspaces/llvm}"
1010

11-
# Modify defconfig
12-
DEFCONFIG_FILE=$SRC_ROOT/configs/$DEFCONFIG
13-
DEFCONFIG_FILE_COPY=$SRC_ROOT/configs/tmp_$DEFCONFIG
14-
cp -rf $DEFCONFIG_FILE $DEFCONFIG_FILE_COPY
15-
echo "BR2_PACKAGE_SWIFT_HELLO=y" >> $DEFCONFIG_FILE_COPY
16-
echo "BR2_PACKAGE_SWIFT_NATIVE_TOOLS=\"${SWIFT_NATIVE_TOOLS}\"" >> $DEFCONFIG_FILE_COPY
17-
echo "BR2_PACKAGE_SWIFT_LLVM_DIR=\"${SWIFT_LLVM_DIR}\"" >> $DEFCONFIG_FILE_COPY
11+
# Prepare environment
12+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/configure.sh
13+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/fetch-sources.sh
14+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build-host-tools.sh
15+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build-toolchain.sh
16+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build-base.sh
1817

19-
# Build
18+
# Build Swift
2019
cd $BUILDROOT_DIR
21-
make BR2_EXTERNAL=$SRC_ROOT tmp_$DEFCONFIG
22-
rm -rf $DEFCONFIG_FILE_COPY
23-
make source
24-
make
20+
make
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Configurable
5+
SWIFT_BUILDROOT="${SWIFT_BUILDROOT:=$(pwd)}"
6+
DEFCONFIG="${DEFCONFIG:=swift_arm64_defconfig}"
7+
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
8+
SWIFT_NATIVE_TOOLS="${SWIFT_NATIVE_TOOLS:=/workspaces/swift/usr/bin}"
9+
SWIFT_LLVM_DIR="${SWIFT_LLVM_DIR:=/workspaces/llvm}"
10+
11+
# Modify defconfig
12+
DEFCONFIG_FILE=$SWIFT_BUILDROOT/configs/$DEFCONFIG
13+
DEFCONFIG_FILE_COPY=$SWIFT_BUILDROOT/configs/tmp_$DEFCONFIG
14+
cp -rf $DEFCONFIG_FILE $DEFCONFIG_FILE_COPY
15+
echo "BR2_PACKAGE_SWIFT_NATIVE_TOOLS=\"${SWIFT_NATIVE_TOOLS}\"" >> $DEFCONFIG_FILE_COPY
16+
echo "BR2_PACKAGE_SWIFT_LLVM_DIR=\"${SWIFT_LLVM_DIR}\"" >> $DEFCONFIG_FILE_COPY
17+
18+
# Build
19+
cd $BUILDROOT_DIR
20+
make BR2_EXTERNAL=$SWIFT_BUILDROOT tmp_$DEFCONFIG
21+
rm -rf $DEFCONFIG_FILE_COPY
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Paths
5+
BUILDROOT_DIR="${BUILDROOT_DIR:=/workspaces/buildroot}"
6+
7+
# Build
8+
cd $BUILDROOT_DIR
9+
make source

.devcontainer/devcontainer.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
"dockerfile": "Dockerfile",
77
"args": {
88
// Update the VARIANT arg to pick a Swift version
9-
"VARIANT": "6.0.2-jammy",
9+
"VARIANT": "6.0.3-jammy",
1010
// Options
11-
"NODE_VERSION": "lts/*"
11+
"NODE_VERSION": "lts/*",
12+
// Buildroot Config
13+
"DEFCONFIG": "swift_arm64_defconfig"
1214
}
1315
},
1416
"runArgs": [
@@ -30,7 +32,8 @@
3032
"extensions": [
3133
"sswg.swift-lang",
3234
"ms-vscode.cmake-tools",
33-
"ms-vscode.makefile-tools"
35+
"ms-vscode.makefile-tools",
36+
"ms-azuretools.vscode-docker"
3437
]
3538
}
3639
},

.github/workflows/buildroot-experimental.yml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ jobs:
88
matrix:
99
config: ["nezha"]
1010
runs-on: Linux
11-
container: swift:6.0.2-jammy
11+
container: swift:6.0.3-jammy
1212
steps:
1313
- name: Checkout
1414
uses: actions/checkout@v3
1515
- name: Build
1616
run: |
17-
export SRC_ROOT=$GITHUB_WORKSPACE
17+
export SWIFT_BUILDROOT=$GITHUB_WORKSPACE
1818
export DEFCONFIG=${{ matrix.config }}_swift_defconfig
1919
export SWIFT_NATIVE_TOOLS=/workspaces/swift/usr/bin
2020
export SWIFT_LLVM_DIR=/workspaces/llvm
2121
export BUILDROOT_DIR=/workspaces/buildroot
2222
export BUILDROOT_RELEASE=2024.02.9
2323
export DEBIAN_FRONTEND=noninteractive
2424
export DEBCONF_NONINTERACTIVE_SEEN=true
25-
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.2-RELEASE/swift-6.0.2-Debian11-x86_64.tar.gz
25+
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.3-RELEASE/swift-6.0.3-Debian11-x86_64.tar.gz
2626
apt update
27-
$SRC_ROOT/.devcontainer/library-scripts/install-dependencies.sh
28-
$SRC_ROOT/.devcontainer/library-scripts/install-swift.sh
29-
$SRC_ROOT/.devcontainer/build-scripts/download-buildroot.sh
30-
cp $SRC_ROOT/package/swift/extra-patches/002-RISCV64.patch $SRC_ROOT/package/swift/002-RISCV64.patch
31-
$SRC_ROOT/.devcontainer/build-scripts/build.sh
27+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-dependencies.sh
28+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-swift.sh
29+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/download-buildroot.sh
30+
cp $SWIFT_BUILDROOT/package/swift/extra-patches/002-RISCV64.patch $SWIFT_BUILDROOT/package/swift/002-RISCV64.patch
31+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build.sh
3232
- name: Archive Build artifacts
3333
uses: actions/upload-artifact@v3
3434
with:
@@ -41,27 +41,27 @@ jobs:
4141
matrix:
4242
config: ["qemu_ppc_mac99"]
4343
runs-on: ubuntu-latest
44-
container: swift:6.0.2-jammy
44+
container: swift:6.0.3-jammy
4545
steps:
4646
- name: Checkout
4747
uses: actions/checkout@v3
4848
- name: Build
4949
run: |
50-
export SRC_ROOT=$GITHUB_WORKSPACE
50+
export SWIFT_BUILDROOT=$GITHUB_WORKSPACE
5151
export DEFCONFIG=${{ matrix.config }}_swift_defconfig
5252
export SWIFT_NATIVE_TOOLS=/workspaces/swift/usr/bin
5353
export SWIFT_LLVM_DIR=/workspaces/llvm
5454
export BUILDROOT_DIR=/workspaces/buildroot
5555
export BUILDROOT_RELEASE=2024.02.9
5656
export DEBIAN_FRONTEND=noninteractive
5757
export DEBCONF_NONINTERACTIVE_SEEN=true
58-
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.2-RELEASE/swift-6.0.2-Debian11-x86_64.tar.gz
58+
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.3-RELEASE/swift-6.0.3-Debian11-x86_64.tar.gz
5959
apt update
60-
$SRC_ROOT/.devcontainer/library-scripts/install-dependencies.sh
61-
$SRC_ROOT/.devcontainer/library-scripts/install-swift.sh
62-
$SRC_ROOT/.devcontainer/build-scripts/download-buildroot.sh
63-
cp $SRC_ROOT/package/swift/extra-patches/003-PowerPC.patch $SRC_ROOT/package/swift/003-PowerPC.patch
64-
$SRC_ROOT/.devcontainer/build-scripts/build.sh
60+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-dependencies.sh
61+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-swift.sh
62+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/download-buildroot.sh
63+
cp $SWIFT_BUILDROOT/package/swift/extra-patches/003-PowerPC.patch $SWIFT_BUILDROOT/package/swift/003-PowerPC.patch
64+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build.sh
6565
- name: Archive Build artifacts
6666
uses: actions/upload-artifact@v3
6767
with:
@@ -74,27 +74,27 @@ jobs:
7474
matrix:
7575
config: ["qemu_mips32r6el_malta", "qemu_mips64r6el_malta"]
7676
runs-on: ubuntu-latest
77-
container: swift:6.0.2-jammy
77+
container: swift:6.0.3-jammy
7878
steps:
7979
- name: Checkout
8080
uses: actions/checkout@v3
8181
- name: Build
8282
run: |
83-
export SRC_ROOT=$GITHUB_WORKSPACE
83+
export SWIFT_BUILDROOT=$GITHUB_WORKSPACE
8484
export DEFCONFIG=${{ matrix.config }}_swift_defconfig
8585
export SWIFT_NATIVE_TOOLS=/workspaces/swift/usr/bin
8686
export SWIFT_LLVM_DIR=/workspaces/llvm
8787
export BUILDROOT_DIR=/workspaces/buildroot
8888
export BUILDROOT_RELEASE=2024.02.9
8989
export DEBIAN_FRONTEND=noninteractive
9090
export DEBCONF_NONINTERACTIVE_SEEN=true
91-
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.2-RELEASE/swift-6.0.2-Debian11-x86_64.tar.gz
91+
export SWIFT_BIN_URL=https://github.com/MillerTechnologyPeru/swift/releases/download/swift-6.0.3-RELEASE/swift-6.0.3-Debian11-x86_64.tar.gz
9292
apt update
93-
$SRC_ROOT/.devcontainer/library-scripts/install-dependencies.sh
94-
$SRC_ROOT/.devcontainer/library-scripts/install-swift.sh
95-
$SRC_ROOT/.devcontainer/build-scripts/download-buildroot.sh
96-
cp $SRC_ROOT/package/swift/extra-patches/004-MIPS.patch $SRC_ROOT/package/swift/004-MIPS.patch
97-
$SRC_ROOT/.devcontainer/build-scripts/build.sh
93+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-dependencies.sh
94+
$SWIFT_BUILDROOT/.devcontainer/library-scripts/install-swift.sh
95+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/download-buildroot.sh
96+
cp $SWIFT_BUILDROOT/package/swift/extra-patches/004-MIPS.patch $SWIFT_BUILDROOT/package/swift/004-MIPS.patch
97+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build.sh
9898
- name: Archive Build artifacts
9999
uses: actions/upload-artifact@v3
100100
with:

.github/workflows/buildroot.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,23 @@ jobs:
55
name: Build Swift for Buildroot
66
strategy:
77
matrix:
8-
config: ["imx6slevk", "aarch64_efi", "pc_x86_64_efi", "qemu_x86", "olimex_imx233_olinuxino", "raspberrypi0w", "qemu_ppc64le_pseries"]
9-
runs-on: Linux
10-
container: swift:6.0.2-jammy
8+
config: ["arm64", "armv7", "armv6", "armv5", "x86_64", "i386", "ppc64le"]
9+
runs-on: ubuntu-latest
10+
container: colemancda/buildroot-swift:swift_${{ matrix.config }}_defconfig
1111
steps:
1212
- name: Checkout
1313
uses: actions/checkout@v3
1414
- name: Build
1515
run: |
16-
export SRC_ROOT=$GITHUB_WORKSPACE
17-
export DEFCONFIG=${{ matrix.config }}_swift_defconfig
16+
export SWIFT_BUILDROOT=$GITHUB_WORKSPACE
17+
export DEFCONFIG=swift_${{ matrix.config }}_defconfig
1818
export SWIFT_NATIVE_TOOLS=/workspaces/swift/usr/bin
1919
export SWIFT_LLVM_DIR=/workspaces/llvm
2020
export BUILDROOT_DIR=/workspaces/buildroot
2121
export BUILDROOT_RELEASE=2024.02.9
2222
export DEBIAN_FRONTEND=noninteractive
2323
export DEBCONF_NONINTERACTIVE_SEEN=true
24-
apt update
25-
$SRC_ROOT/.devcontainer/library-scripts/install-dependencies.sh
26-
$SRC_ROOT/.devcontainer/library-scripts/install-swift.sh
27-
$SRC_ROOT/.devcontainer/build-scripts/download-buildroot.sh
28-
$SRC_ROOT/.devcontainer/build-scripts/build.sh
24+
$SWIFT_BUILDROOT/.devcontainer/build-scripts/build.sh
2925
- name: Archive Build artifacts
3026
uses: actions/upload-artifact@v3
3127
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ install_manifest.txt
99
compile_commands.json
1010
CTestTestfile.cmake
1111
_deps
12+
.devcontainer/Dockerfile-*

configs/aarch64_efi_swift_defconfig

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

0 commit comments

Comments
 (0)