diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ffe53f6..ee66dc1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -7,16 +7,16 @@ name: PR jobs: unknown-linux-gnu-x86_64-x86_64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 steps: + - run: yum install -y bzip2 git gzip make patch tar wget which + - run: yum group install -y "Development Tools" + - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sed -i 's|mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-* - - run: sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' - /etc/yum.repos.d/CentOS-* - - run: yum install -y bzip2 git make patch wget - - run: dnf group install -y "Development Tools" - - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-x86_64-linux-musl.tar.gz @@ -27,10 +27,14 @@ jobs: if-no-files-found: error unknown-linux-gnu-x86_64-x86_64-test-build: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-x86_64 steps: + - run: yum install -y gzip tar - name: Checkout repo uses: actions/checkout@v3 - name: Download musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-x86_64-linux-musl.tar.gz @@ -81,9 +85,9 @@ jobs: apple-darwin-x86_64-x86_64: runs-on: macos-12 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-x86_64-apple-darwin-target-x86_64-linux-musl.tar.gz @@ -142,9 +146,9 @@ jobs: apple-darwin-aarch64-x86_64: runs-on: macos-14 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-aarch64-apple-darwin-target-x86_64-linux-musl.tar.gz @@ -202,7 +206,10 @@ jobs: if-no-files-found: error test-x86_64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-x86_64-test-build - apple-darwin-x86_64-x86_64-test-build @@ -244,16 +251,16 @@ jobs: -- -//:run_built_binary_aarch64-unknown-linux-gnu_test unknown-linux-gnu-x86_64-aarch64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 steps: + - run: yum install -y bzip2 git gzip make patch tar wget which + - run: yum group install -y "Development Tools" + - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sed -i 's|mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-* - - run: sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' - /etc/yum.repos.d/CentOS-* - - run: yum install -y bzip2 git make patch wget - - run: dnf group install -y "Development Tools" - - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl.tar.gz @@ -264,10 +271,14 @@ jobs: if-no-files-found: error unknown-linux-gnu-x86_64-aarch64-test-build: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-aarch64 steps: + - run: yum install -y gzip tar - name: Checkout repo uses: actions/checkout@v3 - name: Download musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl.tar.gz @@ -291,14 +302,18 @@ jobs: \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n\ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl//:musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl - name: Upload test-binary-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl @@ -310,9 +325,9 @@ jobs: apple-darwin-x86_64-aarch64: runs-on: macos-12 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-x86_64-apple-darwin-target-aarch64-linux-musl.tar.gz @@ -348,14 +363,18 @@ jobs: \ \"@platforms//os:osx\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl//:musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-x86_64-apple-darwin-target-aarch64-linux-musl - name: Upload test-binary-platform-x86_64-apple-darwin-target-aarch64-linux-musl @@ -367,9 +386,9 @@ jobs: apple-darwin-aarch64-aarch64: runs-on: macos-14 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-aarch64-apple-darwin-target-aarch64-linux-musl.tar.gz @@ -405,14 +424,18 @@ jobs: \ \"@platforms//os:osx\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n\ \ toolchain = \"@musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl//:musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-aarch64-apple-darwin-target-aarch64-linux-musl - name: Upload test-binary-platform-aarch64-apple-darwin-target-aarch64-linux-musl diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d6fee2b..b0c66ea 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,16 +9,16 @@ name: Release jobs: unknown-linux-gnu-x86_64-x86_64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 steps: + - run: yum install -y bzip2 git gzip make patch tar wget which + - run: yum group install -y "Development Tools" + - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sed -i 's|mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-* - - run: sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' - /etc/yum.repos.d/CentOS-* - - run: yum install -y bzip2 git make patch wget - - run: dnf group install -y "Development Tools" - - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-x86_64-linux-musl.tar.gz @@ -29,10 +29,14 @@ jobs: if-no-files-found: error unknown-linux-gnu-x86_64-x86_64-test-build: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-x86_64 steps: + - run: yum install -y gzip tar - name: Checkout repo uses: actions/checkout@v3 - name: Download musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-x86_64-linux-musl.tar.gz @@ -83,9 +87,9 @@ jobs: apple-darwin-x86_64-x86_64: runs-on: macos-12 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-x86_64-apple-darwin-target-x86_64-linux-musl.tar.gz @@ -144,9 +148,9 @@ jobs: apple-darwin-aarch64-x86_64: runs-on: macos-14 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-aarch64-apple-darwin-target-x86_64-linux-musl.tar.gz @@ -205,9 +209,9 @@ jobs: unknown-linux-gnu-aarch64-x86_64: runs-on: buildjet-2vcpu-ubuntu-2204-arm steps: + - run: sudo ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sudo ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh x86_64 - name: Upload musl-1.2.3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl.tar.gz @@ -244,14 +248,18 @@ jobs: \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:x86_64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:x86_64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:x86_64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n\ + \ \"@platforms//cpu:x86_64\",\n \"@platforms//os:linux\",\n\ + \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl//:musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:x86_64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl - name: Upload test-binary-platform-aarch64-unknown-linux-gnu-target-x86_64-linux-musl @@ -262,7 +270,10 @@ jobs: if-no-files-found: error test-x86_64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-x86_64-test-build - apple-darwin-x86_64-x86_64-test-build @@ -313,16 +324,16 @@ jobs: -- ' unknown-linux-gnu-x86_64-aarch64: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 steps: + - run: yum install -y bzip2 git gzip make patch tar wget which + - run: yum group install -y "Development Tools" + - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sed -i 's|mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-* - - run: sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' - /etc/yum.repos.d/CentOS-* - - run: yum install -y bzip2 git make patch wget - - run: dnf group install -y "Development Tools" - - run: ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl.tar.gz @@ -333,10 +344,14 @@ jobs: if-no-files-found: error unknown-linux-gnu-x86_64-aarch64-test-build: runs-on: ubuntu-latest - container: centos:centos8 + container: amazonlinux:2 + env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 needs: - unknown-linux-gnu-x86_64-aarch64 steps: + - run: yum install -y gzip tar - name: Checkout repo uses: actions/checkout@v3 - name: Download musl-1.2.3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl.tar.gz @@ -360,14 +375,18 @@ jobs: \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n\ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl//:musl-1_2_3-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl - name: Upload test-binary-platform-x86_64-unknown-linux-gnu-target-aarch64-linux-musl @@ -379,9 +398,9 @@ jobs: apple-darwin-x86_64-aarch64: runs-on: macos-12 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-x86_64-apple-darwin-target-aarch64-linux-musl.tar.gz @@ -417,14 +436,18 @@ jobs: \ \"@platforms//os:osx\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl//:musl-1_2_3-platform-x86_64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-x86_64-apple-darwin-target-aarch64-linux-musl - name: Upload test-binary-platform-x86_64-apple-darwin-target-aarch64-linux-musl @@ -436,9 +459,9 @@ jobs: apple-darwin-aarch64-aarch64: runs-on: macos-14 steps: + - run: brew install wget md5sha1sum gnu-tar - name: Checkout repo uses: actions/checkout@v3 - - run: brew install wget md5sha1sum gnu-tar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-aarch64-apple-darwin-target-aarch64-linux-musl.tar.gz @@ -474,14 +497,18 @@ jobs: \ \"@platforms//os:osx\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n\ \ toolchain = \"@musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl//:musl-1_2_3-platform-aarch64-apple-darwin-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-aarch64-apple-darwin-target-aarch64-linux-musl - name: Upload test-binary-platform-aarch64-apple-darwin-target-aarch64-linux-musl @@ -493,9 +520,9 @@ jobs: unknown-linux-gnu-aarch64-aarch64: runs-on: buildjet-2vcpu-ubuntu-2204-arm steps: + - run: sudo ln -s /usr/bin/tar /usr/bin/gnutar - name: Checkout repo uses: actions/checkout@v3 - - run: sudo ln -s /usr/bin/tar /usr/bin/gnutar - name: Build musl run: ./build.sh aarch64 - name: Upload musl-1.2.3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl.tar.gz @@ -532,14 +559,22 @@ jobs: \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl\"\ - ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\n\n\ - platform(\n name = \"platform\",\n constraint_values = [\n \"\ - @platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n ],\n)\n\n\ - EOF\n" - - name: Build test binary and test with musl - run: cd test-workspaces/builder && BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 bazel - build //:binary //:test --platforms=//config:platform --extra_toolchains=//config:musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl - --incompatible_enable_cc_toolchain_resolution + ,\n toolchain_type = \"@bazel_tools//tools/cpp:toolchain_type\",\n)\ntoolchain(\n\ + \ name = \"musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n exec_compatible_with = [\n \"@platforms//cpu:arm64\",\n \ + \ \"@platforms//os:linux\",\n ],\n target_compatible_with = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n toolchain = \"@musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl//:musl-1_2_3-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl_test_toolchain\"\ + ,\n toolchain_type = \"@bazel_tools//tools/cpp:test_runner_toolchain_type\"\ + ,\n)\n\nplatform(\n name = \"platform\",\n constraint_values = [\n \ + \ \"@platforms//cpu:arm64\",\n \"@platforms//os:linux\",\n \ + \ ],\n)\n\nEOF\n" + - name: Test with musl + run: cd test-workspaces/builder && bazel test //:test + - name: Test with musl (static linking) + run: cd test-workspaces/builder && bazel test //:test --dynamic_mode=off + - name: Build with musl + run: cd test-workspaces/builder && bazel build //:binary - name: Move test binary run: mkdir output && cp test-workspaces/builder/bazel-bin/binary output/test-binary-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl - name: Upload test-binary-platform-aarch64-unknown-linux-gnu-target-aarch64-linux-musl diff --git a/generate-actions.py b/generate-actions.py index 192916d..51d7481 100644 --- a/generate-actions.py +++ b/generate-actions.py @@ -9,6 +9,8 @@ checkout = { "name": "Checkout repo", + # Pin to v3 not newer, because it uses a version of node which is compatible with amazonlinux2. + # See https://github.com/actions/runner/issues/2906 for more details. "uses": "actions/checkout@v3", } @@ -76,7 +78,8 @@ def for_bazel_download(self): @dataclass class BaseRunner: top_level_properties: Dict[str, Any] - setup_steps: List[Dict[str, Any]] + build_setup_steps: List[Dict[str, Any]] + test_setup_steps: List[Dict[str, Any]] def install_bazel(os: OS, arch: Architecture): @@ -96,23 +99,29 @@ def install_bazel(os: OS, arch: Architecture): linux_x86_64_runner = BaseRunner( top_level_properties={ "runs-on": "ubuntu-latest", - "container": "centos:centos8", - }, - setup_steps=[ - { - "run": "sed -i 's|mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-*", + "container": "amazonlinux:2", + # Don't have GitHub Actions force a newer node which uses too new a glibc when checking out the repo. + # See https://github.com/actions/runner/issues/2906 for more details. + "env": { + "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION": True, + "ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION": "node16", }, + }, + build_setup_steps=[ { - "run": "sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*", + "run": "yum install -y bzip2 git gzip make patch tar wget which", }, { - "run": "yum install -y bzip2 git make patch wget", + "run": 'yum group install -y "Development Tools"', }, { - "run": 'dnf group install -y "Development Tools"', + "run": "ln -s /usr/bin/tar /usr/bin/gnutar", }, + ], + test_setup_steps=[ { - "run": "ln -s /usr/bin/tar /usr/bin/gnutar", + # The checkout action assumes tar is present on $PATH. + "run": "yum install -y gzip tar", }, ], ) @@ -125,11 +134,12 @@ def install_bazel(os: OS, arch: Architecture): # https://app.buildjet.com/53858925 "runs-on": "buildjet-2vcpu-ubuntu-2204-arm", }, - setup_steps=[ + build_setup_steps=[ { "run": "sudo ln -s /usr/bin/tar /usr/bin/gnutar", }, ], + test_setup_steps=[], ) _setup_darwin_steps = [ @@ -142,14 +152,16 @@ def install_bazel(os: OS, arch: Architecture): top_level_properties={ "runs-on": "macos-12", }, - setup_steps=_setup_darwin_steps, + build_setup_steps=_setup_darwin_steps, + test_setup_steps=[], ) darwin_aarch64_runner = BaseRunner( top_level_properties={ "runs-on": "macos-14", }, - setup_steps=_setup_darwin_steps, + build_setup_steps=_setup_darwin_steps, + test_setup_steps=[], ) @@ -716,10 +728,10 @@ def make_jobs(release, version): ) musl_filename = musl_filename_without_extension(source_os, source_arch, target_arch) + ".tar.gz" jobs[build_job_name] = source_runner.top_level_properties | { - "steps": [ + "steps": source_runner.build_setup_steps + + [ checkout, ] - + source_runner.setup_steps + [ { "name": "Build musl", @@ -743,7 +755,7 @@ def make_jobs(release, version): test_build_filename = f"test-binary-platform-{source_arch.for_musl}-{source_os.for_musl}-target-{target_arch.for_musl}-linux-musl" jobs[test_build_job_name] = source_runner.top_level_properties | { "needs": [build_job_name], - "steps": [ + "steps": source_runner.test_setup_steps + [ checkout, download(musl_filename), install_bazel(source_os, source_arch),