docker: Add Instruction Set Architectures to build matrix.
ci: Publish multi-arch images for both branch and tag refs. Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
30
.github/workflows/lint.yml
vendored
30
.github/workflows/lint.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Format
|
name: Format
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -54,9 +54,9 @@ jobs:
|
|||||||
rust_toolchains: '["nightly"]'
|
rust_toolchains: '["nightly"]'
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
machines: '["X64"]'
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Typos
|
name: Typos
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -78,8 +78,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Audit
|
name: Audit
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -101,8 +101,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Lychee
|
name: Lychee
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -124,8 +124,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Check
|
name: Check
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -147,8 +147,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
|
|||||||
84
.github/workflows/main.yml
vendored
84
.github/workflows/main.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
default_sys_names: '["debian"]'
|
default_sys_names: '["debian"]'
|
||||||
default_sys_versions: '["testing-slim"]'
|
default_sys_versions: '["testing-slim"]'
|
||||||
default_rust_targets: '["x86_64-unknown-linux-gnu"]'
|
default_rust_targets: '["x86_64-unknown-linux-gnu"]'
|
||||||
default_sys_targets: '["x86_64-linux-gnu"]'
|
default_sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
default_machines: '["X64"]'
|
default_machines: '["X64"]'
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
@@ -55,8 +55,8 @@ jobs:
|
|||||||
- name: Initialize Builder
|
- name: Initialize Builder
|
||||||
env:
|
env:
|
||||||
runner: ${{matrix.runner}}
|
runner: ${{matrix.runner}}
|
||||||
reserved_space: '{"het": "256GB", "aws": "48GB", "gcp": "160GB"}'
|
reserved_space: '{"het": "384GB", "aws": "48GB", "gcp": "160GB"}'
|
||||||
max_used_space: '{"het": "448GB", "aws": "64GB", "gcp": "192GB"}'
|
max_used_space: '{"het": "512GB", "aws": "64GB", "gcp": "192GB"}'
|
||||||
run: |
|
run: |
|
||||||
set +e
|
set +e
|
||||||
docker buildx inspect "${GITHUB_ACTOR}"
|
docker buildx inspect "${GITHUB_ACTOR}"
|
||||||
@@ -138,10 +138,16 @@ jobs:
|
|||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "rust_toolchain": "nightly"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "rust_toolchain": "nightly"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v1-linux-gnu"},
|
||||||
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"sys_target": "x86_64-linux-gnu", "machine": "ARM64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"sys_target": "aarch64-linux-gnu", "machine": "X64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
|
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-v8-linux-gnu"},
|
||||||
|
{"sys_target": "aarch64-v8-linux-gnu", "machine": "X64"},
|
||||||
|
{"sys_target": "x86_64-v1-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu"},
|
||||||
]
|
]
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@@ -175,10 +181,22 @@ jobs:
|
|||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "rust_toolchain": "nightly"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "rust_toolchain": "nightly"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v1-linux-gnu"},
|
||||||
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"sys_target": "x86_64-linux-gnu", "machine": "ARM64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"sys_target": "aarch64-linux-gnu", "machine": "X64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
|
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-v8-linux-gnu"},
|
||||||
|
{"sys_target": "aarch64-v8-linux-gnu", "machine": "X64"},
|
||||||
|
{"sys_target": "x86_64-v1-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "default"},
|
||||||
]
|
]
|
||||||
|
|
||||||
package:
|
package:
|
||||||
@@ -203,22 +221,29 @@ jobs:
|
|||||||
[
|
[
|
||||||
{"feat_set": "none"},
|
{"feat_set": "none"},
|
||||||
{"cargo_profile": "test"},
|
{"cargo_profile": "test"},
|
||||||
|
{"cargo_profile": "release-native"},
|
||||||
{"cargo_profile": "release-debuginfo", "feat_set": "default"},
|
{"cargo_profile": "release-debuginfo", "feat_set": "default"},
|
||||||
{"cargo_profile": "release-debuginfo", "rust_toolchain": "nightly"},
|
{"cargo_profile": "release-debuginfo", "rust_toolchain": "nightly"},
|
||||||
{"cargo_profile": "release-debuginfo", "bake_target": "oci"},
|
{"cargo_profile": "release-debuginfo", "bake_target": "oci"},
|
||||||
{"cargo_profile": "release-debuginfo", "rust_target": "aarch64-unknown-linux-gnu"},
|
{"cargo_profile": "release-debuginfo", "rust_target": "aarch64-unknown-linux-gnu"},
|
||||||
{"cargo_profile": "release-native", "feat_set": "default"},
|
{"cargo_profile": "release-debuginfo", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"cargo_profile": "release-native", "rust_toolchain": "stable"},
|
{"cargo_profile": "release-debuginfo", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"cargo_profile": "release-native", "feat_set": "default"},
|
{"cargo_profile": "release-debuginfo", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
{"cargo_profile": "release-native", "bake_target": "docker"},
|
|
||||||
{"cargo_profile": "release-native", "bake_target": "oci"},
|
|
||||||
{"cargo_profile": "release-native", "rust_target": "aarch64-unknown-linux-gnu"},
|
|
||||||
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v1-linux-gnu"},
|
||||||
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"sys_target": "x86_64-linux-gnu", "machine": "ARM64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"sys_target": "aarch64-linux-gnu", "machine": "X64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
|
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-v8-linux-gnu"},
|
||||||
|
{"sys_target": "aarch64-v8-linux-gnu", "machine": "X64"},
|
||||||
|
{"sys_target": "x86_64-v1-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "default"},
|
||||||
]
|
]
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
@@ -247,10 +272,19 @@ jobs:
|
|||||||
{"cargo_profile": "release-native"},
|
{"cargo_profile": "release-native"},
|
||||||
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v1-linux-gnu"},
|
||||||
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"sys_target": "x86_64-linux-gnu", "machine": "ARM64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"sys_target": "aarch64-linux-gnu", "machine": "X64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
|
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-v8-linux-gnu"},
|
||||||
|
{"sys_target": "aarch64-v8-linux-gnu", "machine": "X64"},
|
||||||
|
{"sys_target": "x86_64-v1-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "default"},
|
||||||
]
|
]
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
|
|||||||
6
.github/workflows/package.yml
vendored
6
.github/workflows/package.yml
vendored
@@ -49,7 +49,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["default"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["default"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Book
|
name: Book
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -60,9 +60,9 @@ jobs:
|
|||||||
rust_toolchains: '["stable"]'
|
rust_toolchains: '["stable"]'
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
machines: '["X64"]'
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
|
machines: ${{inputs.machines}}
|
||||||
runner: 'het'
|
runner: 'het'
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|||||||
52
.github/workflows/publish.yml
vendored
52
.github/workflows/publish.yml
vendored
@@ -49,7 +49,7 @@ jobs:
|
|||||||
documents:
|
documents:
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["X64"]')[0])
|
||||||
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
||||||
&& !contains(github.ref, '-draft')
|
&& !contains(github.ref, '-draft')
|
||||||
|
|
||||||
@@ -70,7 +70,6 @@ jobs:
|
|||||||
&& inputs.machines
|
&& inputs.machines
|
||||||
&& inputs.docker_repo != ''
|
&& inputs.docker_repo != ''
|
||||||
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
||||||
&& !contains(github.ref, '-draft')
|
|
||||||
|
|
||||||
name: Containers
|
name: Containers
|
||||||
runs-on: ${{matrix.machine}}
|
runs-on: ${{matrix.machine}}
|
||||||
@@ -135,8 +134,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0])
|
||||||
&& contains(github.ref, 'refs/tags/v')
|
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
||||||
&& !contains(github.ref, '-draft')
|
|
||||||
|
|
||||||
name: Bundles
|
name: Bundles
|
||||||
needs: [containers]
|
needs: [containers]
|
||||||
@@ -172,9 +170,36 @@ jobs:
|
|||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.dockerhub_token }}
|
password: ${{ secrets.dockerhub_token }}
|
||||||
|
|
||||||
|
- name: Release Branch
|
||||||
|
if: >
|
||||||
|
!failure() && !cancelled()
|
||||||
|
&& github.ref == 'refs/heads/main'
|
||||||
|
|
||||||
|
env:
|
||||||
|
acct: ${{github.actor}}
|
||||||
|
ghcr_repo: ${{github.repository}}
|
||||||
|
docker_repo: ${{inputs.docker_repo}}
|
||||||
|
registry: ${{matrix.bake_target}}
|
||||||
|
cargo_profile: ${{matrix.cargo_profile}}
|
||||||
|
feat_set: ${{matrix.feat_set}}
|
||||||
|
sys_target: ${{matrix.sys_target}}
|
||||||
|
ref_name: ${{github.ref_name}}
|
||||||
|
|
||||||
|
run: |
|
||||||
|
registry="$(echo -n $registry | sed s/_/./)"
|
||||||
|
if test "$registry" = "ghcr.io"; then
|
||||||
|
repo="$ghcr_repo"
|
||||||
|
else
|
||||||
|
repo="$docker_repo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker manifest create "${registry}/${repo}:${ref_name}" \
|
||||||
|
--amend "${registry}/${repo}:${ref_name}-${cargo_profile}-${feat_set}-${sys_target}"
|
||||||
|
|
||||||
- name: Release Preview
|
- name: Release Preview
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
|
&& contains(github.ref, 'refs/tags/v')
|
||||||
&& !contains(github.ref, '-draft')
|
&& !contains(github.ref, '-draft')
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -201,6 +226,7 @@ jobs:
|
|||||||
- name: Release Latest
|
- name: Release Latest
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
|
&& contains(github.ref, 'refs/tags/v')
|
||||||
&& !contains(github.ref, '-draft')
|
&& !contains(github.ref, '-draft')
|
||||||
&& !contains(github.ref, '-rc')
|
&& !contains(github.ref, '-rc')
|
||||||
|
|
||||||
@@ -230,7 +256,7 @@ jobs:
|
|||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
&& inputs.machines
|
&& inputs.machines
|
||||||
&& inputs.docker_repo != ''
|
&& inputs.docker_repo != ''
|
||||||
&& contains(github.ref, 'refs/tags/v')
|
&& (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
|
||||||
|
|
||||||
name: Delivery
|
name: Delivery
|
||||||
needs: [bundles, documents]
|
needs: [bundles, documents]
|
||||||
@@ -251,9 +277,24 @@ jobs:
|
|||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.dockerhub_token }}
|
password: ${{ secrets.dockerhub_token }}
|
||||||
|
|
||||||
|
- name: Push Branch
|
||||||
|
if: >
|
||||||
|
!failure() && !cancelled()
|
||||||
|
&& github.ref == 'refs/heads/main'
|
||||||
|
|
||||||
|
env:
|
||||||
|
ref_name: ${{github.ref_name}}
|
||||||
|
ghcr_repo: ${{github.repository}}
|
||||||
|
docker_repo: ${{inputs.docker_repo}}
|
||||||
|
|
||||||
|
run: |
|
||||||
|
docker manifest push -p "ghcr.io/${ghcr_repo}:${ref_name}"
|
||||||
|
docker manifest push -p "docker.io/${docker_repo}:${ref_name}"
|
||||||
|
|
||||||
- name: Push Preview
|
- name: Push Preview
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
|
&& contains(github.ref, 'refs/tags/v')
|
||||||
&& !contains(github.ref, '-draft')
|
&& !contains(github.ref, '-draft')
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -267,6 +308,7 @@ jobs:
|
|||||||
- name: Push Latest
|
- name: Push Latest
|
||||||
if: >
|
if: >
|
||||||
!failure() && !cancelled()
|
!failure() && !cancelled()
|
||||||
|
&& contains(github.ref, 'refs/tags/v')
|
||||||
&& !contains(github.ref, '-draft')
|
&& !contains(github.ref, '-draft')
|
||||||
&& !contains(github.ref, '-rc')
|
&& !contains(github.ref, '-rc')
|
||||||
|
|
||||||
|
|||||||
44
.github/workflows/test.yml
vendored
44
.github/workflows/test.yml
vendored
@@ -50,7 +50,7 @@ jobs:
|
|||||||
contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Unit
|
name: Unit
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -62,8 +62,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
|
|
||||||
@@ -92,6 +92,7 @@ jobs:
|
|||||||
{"cargo_profile": "test", "feat_set": "none", "bake_target": "smoke-valgrind"},
|
{"cargo_profile": "test", "feat_set": "none", "bake_target": "smoke-valgrind"},
|
||||||
{"cargo_profile": "test", "rust_toolchain": "stable"},
|
{"cargo_profile": "test", "rust_toolchain": "stable"},
|
||||||
{"cargo_profile": "test", "rust_target": "aarch64-unknown-linux-gnu"},
|
{"cargo_profile": "test", "rust_target": "aarch64-unknown-linux-gnu"},
|
||||||
|
{"cargo_profile": "test", "sys_target": "x86_64-v2-linux-gnu", "bake_target": "smoke-valgrind"},
|
||||||
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
||||||
{"cargo_profile": "release", "rust_toolchain": "stable", "feat_set": "none"},
|
{"cargo_profile": "release", "rust_toolchain": "stable", "feat_set": "none"},
|
||||||
{"cargo_profile": "release", "bake_target": "smoke-valgrind"},
|
{"cargo_profile": "release", "bake_target": "smoke-valgrind"},
|
||||||
@@ -104,12 +105,29 @@ jobs:
|
|||||||
{"cargo_profile": "release-native", "feat_set": "default"},
|
{"cargo_profile": "release-native", "feat_set": "default"},
|
||||||
{"cargo_profile": "release-native", "bake_target": "smoke-valgrind"},
|
{"cargo_profile": "release-native", "bake_target": "smoke-valgrind"},
|
||||||
{"cargo_profile": "release-native", "rust_target": "aarch64-unknown-linux-gnu"},
|
{"cargo_profile": "release-native", "rust_target": "aarch64-unknown-linux-gnu"},
|
||||||
|
{"cargo_profile": "release-native", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
|
{"cargo_profile": "release-native", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
|
{"cargo_profile": "release-native", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "none"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "feat_set": "default"},
|
||||||
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v1-linux-gnu"},
|
||||||
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-linux-gnu"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v2-linux-gnu"},
|
||||||
{"sys_target": "x86_64-linux-gnu", "machine": "ARM64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v3-linux-gnu"},
|
||||||
{"sys_target": "aarch64-linux-gnu", "machine": "X64"},
|
{"rust_target": "aarch64-unknown-linux-gnu", "sys_target": "x86_64-v4-linux-gnu"},
|
||||||
|
{"rust_target": "x86_64-unknown-linux-gnu", "sys_target": "aarch64-v8-linux-gnu"},
|
||||||
|
{"sys_target": "aarch64-v8-linux-gnu", "machine": "X64"},
|
||||||
|
{"sys_target": "x86_64-v1-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v2-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v3-linux-gnu", "bake_target": "smoke-valgrind"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "machine": "ARM64"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "none"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "feat_set": "default"},
|
||||||
|
{"sys_target": "x86_64-v4-linux-gnu", "bake_target": "smoke-valgrind"},
|
||||||
]
|
]
|
||||||
|
|
||||||
complement:
|
complement:
|
||||||
@@ -119,7 +137,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.complement_feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.complement_feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Complement
|
name: Complement
|
||||||
uses: ./.github/workflows/bake.yml
|
uses: ./.github/workflows/bake.yml
|
||||||
@@ -131,8 +149,8 @@ jobs:
|
|||||||
sys_names: ${{inputs.sys_names}}
|
sys_names: ${{inputs.sys_names}}
|
||||||
sys_versions: ${{inputs.sys_versions}}
|
sys_versions: ${{inputs.sys_versions}}
|
||||||
rust_targets: ${{inputs.rust_targets}}
|
rust_targets: ${{inputs.rust_targets}}
|
||||||
sys_targets: ${{inputs.sys_targets}}
|
sys_targets: '["x86_64-v1-linux-gnu"]'
|
||||||
machines: '["X64"]'
|
machines: ${{inputs.machines}}
|
||||||
runner: ${{inputs.complement_runner}}
|
runner: ${{inputs.complement_runner}}
|
||||||
excludes: ${{inputs.excludes}}
|
excludes: ${{inputs.excludes}}
|
||||||
includes: ${{inputs.includes}}
|
includes: ${{inputs.includes}}
|
||||||
@@ -145,7 +163,7 @@ jobs:
|
|||||||
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
&& contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])
|
||||||
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
&& contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0])
|
||||||
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
&& contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0])
|
||||||
&& contains(fromJSON(inputs.machines), fromJSON('["X64"]')[0])
|
&& contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0])
|
||||||
|
|
||||||
name: Matrix Compliance
|
name: Matrix Compliance
|
||||||
needs: [complement]
|
needs: [complement]
|
||||||
@@ -163,8 +181,8 @@ jobs:
|
|||||||
sys_name: ${{fromJSON(inputs.sys_names)}}
|
sys_name: ${{fromJSON(inputs.sys_names)}}
|
||||||
sys_version: ${{fromJSON(inputs.sys_versions)}}
|
sys_version: ${{fromJSON(inputs.sys_versions)}}
|
||||||
rust_target: ${{fromJSON(inputs.rust_targets)}}
|
rust_target: ${{fromJSON(inputs.rust_targets)}}
|
||||||
sys_target: ${{fromJSON(inputs.sys_targets)}}
|
sys_target: ${{fromJSON('["x86_64-v1-linux-gnu"]')}}
|
||||||
machine: ${{fromJSON('["X64"]')}}
|
machine: ${{fromJSON(inputs.machines)}}
|
||||||
exclude: ${{fromJSON(inputs.excludes)}}
|
exclude: ${{fromJSON(inputs.excludes)}}
|
||||||
include: ${{fromJSON(inputs.includes)}}
|
include: ${{fromJSON(inputs.includes)}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS cargo
|
FROM input AS cargo
|
||||||
ARG sys_target
|
ARG sys_triple
|
||||||
ARG rust_target
|
ARG rust_target
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUST_HOME
|
ARG RUST_HOME
|
||||||
@@ -38,7 +38,7 @@ COPY --link --from=input . .
|
|||||||
COPY --link --from=rust ${RUST_HOME} ${RUST_HOME}
|
COPY --link --from=rust ${RUST_HOME} ${RUST_HOME}
|
||||||
COPY --link --from=deps /usr/src/tuwunel /usr/src/tuwunel
|
COPY --link --from=deps /usr/src/tuwunel /usr/src/tuwunel
|
||||||
|
|
||||||
WORKDIR /usr/lib/${sys_target}
|
WORKDIR /usr/lib/${sys_triple}
|
||||||
COPY --link --from=rocksdb . .
|
COPY --link --from=rocksdb . .
|
||||||
|
|
||||||
WORKDIR /usr/src/tuwunel
|
WORKDIR /usr/src/tuwunel
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS audit
|
FROM input AS audit
|
||||||
ARG sys_target
|
|
||||||
ARG rust_toolchain="nightly"
|
ARG rust_toolchain="nightly"
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
ARG CARGO_HOME
|
ARG CARGO_HOME
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS build-deb
|
FROM input AS build-deb
|
||||||
ARG sys_target
|
|
||||||
ARG rust_target
|
ARG rust_target
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS fmt
|
FROM input AS fmt
|
||||||
ARG sys_target
|
|
||||||
ARG rust_toolchain="nightly"
|
ARG rust_toolchain="nightly"
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
ARG CARGO_HOME
|
ARG CARGO_HOME
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS lychee
|
FROM input AS lychee
|
||||||
ARG sys_target
|
|
||||||
ARG rust_toolchain="nightly"
|
ARG rust_toolchain="nightly"
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
ARG CARGO_HOME
|
ARG CARGO_HOME
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS build-rpm
|
FROM input AS build-rpm
|
||||||
ARG sys_target
|
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
ARG CARGO_HOME
|
ARG CARGO_HOME
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ EOF
|
|||||||
|
|
||||||
FROM input AS rocksdb-build
|
FROM input AS rocksdb-build
|
||||||
ARG rocksdb_shared=0
|
ARG rocksdb_shared=0
|
||||||
ARG rocksdb_portable=1
|
ARG rocksdb_portable="1"
|
||||||
ARG rocksdb_opt_level="3"
|
ARG rocksdb_opt_level="3"
|
||||||
ARG rocksdb_build_type="Release"
|
ARG rocksdb_build_type="Release"
|
||||||
ARG rocksdb_cxx_flags="-ftls-model=initial-exec -mno-outline-atomics"
|
ARG rocksdb_cxx_flags="-ftls-model=initial-exec"
|
||||||
ARG rocksdb_make_verbose="ON"
|
ARG rocksdb_make_verbose="ON"
|
||||||
ARG rocksdb_make_rule_messages="OFF"
|
ARG rocksdb_make_rule_messages="OFF"
|
||||||
ARG rocksdb_jemalloc=1
|
ARG rocksdb_jemalloc=1
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ RUN <<EOF
|
|||||||
var="${rustup_version}/${rust_target}"
|
var="${rustup_version}/${rust_target}"
|
||||||
url="https://static.rust-lang.org/rustup/archive/$var/rustup-init"
|
url="https://static.rust-lang.org/rustup/archive/$var/rustup-init"
|
||||||
curl -S -O -s "$url"
|
curl -S -O -s "$url"
|
||||||
chmod o+x rustup-init
|
chmod a+rx rustup-init
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
FROM input AS rust
|
FROM input AS rust
|
||||||
@@ -54,7 +54,7 @@ RUN \
|
|||||||
--no-update-default-toolchain \
|
--no-update-default-toolchain \
|
||||||
--no-modify-path
|
--no-modify-path
|
||||||
|
|
||||||
chmod -R go+rw $CARGO_HOME $RUSTUP_HOME
|
chmod -R a+rw $CARGO_HOME $RUSTUP_HOME
|
||||||
rm rustup-init
|
rm rustup-init
|
||||||
|
|
||||||
rustup component add \
|
rustup component add \
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ EOF
|
|||||||
|
|
||||||
|
|
||||||
FROM input AS ingredients
|
FROM input AS ingredients
|
||||||
ARG sys_target
|
|
||||||
ARG rust_target
|
ARG rust_target
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUST_HOME
|
ARG RUST_HOME
|
||||||
|
|||||||
111
docker/bake.hcl
111
docker/bake.hcl
@@ -16,9 +16,6 @@ variable "repo" {
|
|||||||
variable "docker_repo" {
|
variable "docker_repo" {
|
||||||
default = "${repo}"
|
default = "${repo}"
|
||||||
}
|
}
|
||||||
variable "docker_targets" {
|
|
||||||
default = "[\"local\"]"
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "git_ref" {
|
variable "git_ref" {
|
||||||
default = "${GITHUB_REF}"
|
default = "${GITHUB_REF}"
|
||||||
@@ -60,19 +57,19 @@ variable "rust_targets" {
|
|||||||
default = "[\"x86_64-unknown-linux-gnu\"]"
|
default = "[\"x86_64-unknown-linux-gnu\"]"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "sys_targets" {
|
variable "sys_names" {
|
||||||
default = "[\"x86_64-linux-gnu\"]"
|
default = "[\"debian\"]"
|
||||||
}
|
}
|
||||||
variable "sys_versions" {
|
variable "sys_versions" {
|
||||||
default = "[\"testing-slim\"]"
|
default = "[\"testing-slim\"]"
|
||||||
}
|
}
|
||||||
variable "sys_names" {
|
variable "sys_targets" {
|
||||||
default = "[\"debian\"]"
|
default = "[\"x86_64-v1-linux-gnu\"]"
|
||||||
}
|
}
|
||||||
|
|
||||||
# RocksDB options
|
# RocksDB options
|
||||||
variable "rocksdb_portable" {
|
variable "rocksdb_portable" {
|
||||||
default = 1
|
default = "1"
|
||||||
}
|
}
|
||||||
variable "rocksdb_opt_level" {
|
variable "rocksdb_opt_level" {
|
||||||
default = "3"
|
default = "3"
|
||||||
@@ -1203,7 +1200,7 @@ target "deps-base" {
|
|||||||
join(" ", static_rustflags),
|
join(" ", static_rustflags),
|
||||||
join(" ", static_nightly_rustflags),
|
join(" ", static_nightly_rustflags),
|
||||||
join(" ", native_rustflags),
|
join(" ", native_rustflags),
|
||||||
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
|
"-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
||||||
"-C link-arg=-l:libbz2.a": "",
|
"-C link-arg=-l:libbz2.a": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
||||||
@@ -1213,7 +1210,7 @@ target "deps-base" {
|
|||||||
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
||||||
"-C link-arg=-l:liburing.a": "",
|
"-C link-arg=-l:liburing.a": "",
|
||||||
join(" ", static_libs),
|
join(" ", static_libs),
|
||||||
sys_target == "aarch64-linux-gnu"?
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
"-C link-arg=-l:libgcc.a": "",
|
"-C link-arg=-l:libgcc.a": "",
|
||||||
]):
|
]):
|
||||||
|
|
||||||
@@ -1223,7 +1220,9 @@ target "deps-base" {
|
|||||||
join(" ", nightly_rustflags),
|
join(" ", nightly_rustflags),
|
||||||
join(" ", static_rustflags),
|
join(" ", static_rustflags),
|
||||||
join(" ", static_nightly_rustflags),
|
join(" ", static_nightly_rustflags),
|
||||||
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
"-C target-cpu=${sys_target_isa(sys_target)}": "",
|
||||||
|
"-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
||||||
"-C link-arg=-l:libbz2.a": "",
|
"-C link-arg=-l:libbz2.a": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
||||||
@@ -1233,7 +1232,7 @@ target "deps-base" {
|
|||||||
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
||||||
"-C link-arg=-l:liburing.a": "",
|
"-C link-arg=-l:liburing.a": "",
|
||||||
join(" ", static_libs),
|
join(" ", static_libs),
|
||||||
sys_target == "aarch64-linux-gnu"?
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
"-C link-arg=-l:libgcc.a": "",
|
"-C link-arg=-l:libgcc.a": "",
|
||||||
]):
|
]):
|
||||||
|
|
||||||
@@ -1241,7 +1240,9 @@ target "deps-base" {
|
|||||||
join(" ", [
|
join(" ", [
|
||||||
join(" ", rustflags),
|
join(" ", rustflags),
|
||||||
join(" ", static_rustflags),
|
join(" ", static_rustflags),
|
||||||
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
"-C target-cpu=${sys_target_isa(sys_target)}": "",
|
||||||
|
"-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
||||||
"-C link-arg=-l:libbz2.a": "",
|
"-C link-arg=-l:libbz2.a": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
||||||
@@ -1251,7 +1252,7 @@ target "deps-base" {
|
|||||||
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
||||||
"-C link-arg=-l:liburing.a": "",
|
"-C link-arg=-l:liburing.a": "",
|
||||||
join(" ", static_libs),
|
join(" ", static_libs),
|
||||||
sys_target == "aarch64-linux-gnu"?
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
"-C link-arg=-l:libgcc.a": "",
|
"-C link-arg=-l:libgcc.a": "",
|
||||||
]):
|
]):
|
||||||
|
|
||||||
@@ -1259,7 +1260,9 @@ target "deps-base" {
|
|||||||
join(" ", [
|
join(" ", [
|
||||||
join(" ", rustflags),
|
join(" ", rustflags),
|
||||||
join(" ", static_rustflags),
|
join(" ", static_rustflags),
|
||||||
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
"-C target-cpu=${sys_target_isa(sys_target)}": "",
|
||||||
|
"-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
||||||
"-C link-arg=-l:libbz2.a": "",
|
"-C link-arg=-l:libbz2.a": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
||||||
@@ -1269,7 +1272,7 @@ target "deps-base" {
|
|||||||
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
|
||||||
"-C link-arg=-l:liburing.a": "",
|
"-C link-arg=-l:liburing.a": "",
|
||||||
join(" ", static_libs),
|
join(" ", static_libs),
|
||||||
sys_target == "aarch64-linux-gnu"?
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
"-C link-arg=-l:libgcc.a": "",
|
"-C link-arg=-l:libgcc.a": "",
|
||||||
]):
|
]):
|
||||||
|
|
||||||
@@ -1278,6 +1281,8 @@ target "deps-base" {
|
|||||||
join(" ", rustflags),
|
join(" ", rustflags),
|
||||||
join(" ", nightly_rustflags),
|
join(" ", nightly_rustflags),
|
||||||
join(" ", dynamic_rustflags),
|
join(" ", dynamic_rustflags),
|
||||||
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
"-C target-cpu=${sys_target_isa(sys_target)}": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
|
||||||
"-C link-arg=-lbz2": "",
|
"-C link-arg=-lbz2": "",
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
|
||||||
@@ -1336,10 +1341,27 @@ target "rocksdb-build" {
|
|||||||
rocksdb_zstd = contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? 1: 0
|
rocksdb_zstd = contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? 1: 0
|
||||||
rocksdb_jemalloc = contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? 1: 0
|
rocksdb_jemalloc = contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? 1: 0
|
||||||
rocksdb_iouring = contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? 1: 0
|
rocksdb_iouring = contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? 1: 0
|
||||||
rocksdb_portable = cargo_profile == "release_max_perf"? 0: rocksdb_portable
|
|
||||||
rocksdb_build_type = rocksdb_build_type
|
|
||||||
rocksdb_opt_level = rocksdb_opt_level
|
|
||||||
rocksdb_shared = 0
|
rocksdb_shared = 0
|
||||||
|
rocksdb_opt_level = rocksdb_opt_level
|
||||||
|
rocksdb_build_type = rocksdb_build_type
|
||||||
|
rocksdb_cxx_flags = (
|
||||||
|
cargo_profile == "release-native" && sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
|
"-ftls-model=local-exec -mno-outline-atomics":
|
||||||
|
cargo_profile == "release-native"?
|
||||||
|
"-ftls-model=local-exec":
|
||||||
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
|
"-ftls-model=initial-exec -mno-outline-atomics":
|
||||||
|
sys_target_triple(sys_target) == "x86_64-linux-gnu" && sys_target != "x86_64-v1-linux-gnu"?
|
||||||
|
"-ftls-model=initial-exec -mpclmul":
|
||||||
|
"-ftls-model=initial-exec"
|
||||||
|
)
|
||||||
|
rocksdb_portable = (
|
||||||
|
cargo_profile == "release-native"?
|
||||||
|
"0":
|
||||||
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
"${sys_target_isa(sys_target)}":
|
||||||
|
rocksdb_portable
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1435,8 +1457,8 @@ target "ingredients" {
|
|||||||
"--all-features": "--no-default-features"
|
"--all-features": "--no-default-features"
|
||||||
)
|
)
|
||||||
RUST_BACKTRACE = "full"
|
RUST_BACKTRACE = "full"
|
||||||
ROCKSDB_LIB_DIR="/usr/lib/${sys_target}"
|
ROCKSDB_LIB_DIR="/usr/lib/${sys_target_triple(sys_target)}"
|
||||||
JEMALLOC_OVERRIDE="/usr/lib/${sys_target}/libjemalloc.a"
|
JEMALLOC_OVERRIDE="/usr/lib/${sys_target_triple(sys_target)}/libjemalloc.a"
|
||||||
ZSTD_SYS_USE_PKG_CONFIG = (
|
ZSTD_SYS_USE_PKG_CONFIG = (
|
||||||
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? 1: 0
|
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? 1: 0
|
||||||
)
|
)
|
||||||
@@ -1517,8 +1539,8 @@ target "rust" {
|
|||||||
cargo_installs = join(" ", cargo_installs)
|
cargo_installs = join(" ", cargo_installs)
|
||||||
|
|
||||||
CARGO_TERM_VERBOSE = CARGO_TERM_VERBOSE
|
CARGO_TERM_VERBOSE = CARGO_TERM_VERBOSE
|
||||||
RUSTUP_HOME = "/opt/rust/rustup/${sys_name}/${sys_target}"
|
RUSTUP_HOME = "/opt/rust/rustup/${sys_name}/${sys_target_triple(sys_target)}"
|
||||||
CARGO_HOME = "/opt/rust/cargo/${sys_name}/${sys_target}"
|
CARGO_HOME = "/opt/rust/cargo/${sys_name}/${sys_target_triple(sys_target)}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1725,8 +1747,8 @@ target "base" {
|
|||||||
}
|
}
|
||||||
args = {
|
args = {
|
||||||
DEBIAN_FRONTEND="noninteractive"
|
DEBIAN_FRONTEND="noninteractive"
|
||||||
var_lib_apt = "/var/lib/apt/${sys_name}/${sys_version}/${sys_target}"
|
var_lib_apt = "/var/lib/apt/${sys_name}/${sys_version}/${sys_target_triple(sys_target)}"
|
||||||
var_cache = "/var/cache/${sys_name}/${sys_version}/${sys_target}"
|
var_cache = "/var/cache/${sys_name}/${sys_version}/${sys_target_triple(sys_target)}"
|
||||||
packages = join(" ", base_pkgs)
|
packages = join(" ", base_pkgs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1746,13 +1768,21 @@ target "system" {
|
|||||||
cache_to = ["type=local,compression=zstd,mode=max,compression-level=${cache_compress_level}"]
|
cache_to = ["type=local,compression=zstd,mode=max,compression-level=${cache_compress_level}"]
|
||||||
cache_from = ["type=local"]
|
cache_from = ["type=local"]
|
||||||
dockerfile = "${docker_dir}/Dockerfile.system"
|
dockerfile = "${docker_dir}/Dockerfile.system"
|
||||||
platforms = jsondecode(docker_targets)
|
|
||||||
matrix = sys
|
|
||||||
context = "."
|
context = "."
|
||||||
|
matrix = sys
|
||||||
|
platforms = (
|
||||||
|
sys_target_triple(sys_target) == "x86_64-linux-gnu"?
|
||||||
|
["linux/amd64/${sys_target_ver(sys_target)}"]:
|
||||||
|
sys_target_triple(sys_target) == "aarch64-linux-gnu"?
|
||||||
|
["linux/arm64"]:
|
||||||
|
["local"]
|
||||||
|
)
|
||||||
args = {
|
args = {
|
||||||
sys_name = sys_name
|
sys_name = sys_name
|
||||||
sys_version = sys_version
|
sys_version = sys_version
|
||||||
sys_target = sys_target
|
sys_target = sys_target
|
||||||
|
sys_triple = sys_target_triple(sys_target)
|
||||||
|
sys_isa = sys_target_isa(sys_target)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1761,6 +1791,33 @@ target "system" {
|
|||||||
# Utils
|
# Utils
|
||||||
#
|
#
|
||||||
|
|
||||||
|
function "sys_target_isa" {
|
||||||
|
params = [sys_target]
|
||||||
|
result = (
|
||||||
|
sys_target_ver(sys_target) != "v1"?
|
||||||
|
join("-",
|
||||||
|
[
|
||||||
|
replace(split("-", sys_target)[0], "_", "-"),
|
||||||
|
sys_target_ver(sys_target)
|
||||||
|
]):
|
||||||
|
replace(split("-", sys_target)[0], "_", "-")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function "sys_target_triple" {
|
||||||
|
params = [sys_target]
|
||||||
|
result = join("-", [
|
||||||
|
split("-", sys_target)[0],
|
||||||
|
split("-", sys_target)[2],
|
||||||
|
split("-", sys_target)[3],
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
function "sys_target_ver" {
|
||||||
|
params = [sys_target]
|
||||||
|
result = split("-", sys_target)[1]
|
||||||
|
}
|
||||||
|
|
||||||
function "elem_tag" {
|
function "elem_tag" {
|
||||||
params = [prefix, matrix, tag]
|
params = [prefix, matrix, tag]
|
||||||
result = join(":", [elem(prefix, matrix), tag])
|
result = join(":", [elem(prefix, matrix), tag])
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ default_feat_sets='["all"]'
|
|||||||
default_rust_toolchains='["nightly"]'
|
default_rust_toolchains='["nightly"]'
|
||||||
default_rust_targets='["x86_64-unknown-linux-gnu"]'
|
default_rust_targets='["x86_64-unknown-linux-gnu"]'
|
||||||
default_sys_names='["debian"]'
|
default_sys_names='["debian"]'
|
||||||
default_sys_targets='["x86_64-linux-gnu"]'
|
|
||||||
default_sys_versions='["testing-slim"]'
|
default_sys_versions='["testing-slim"]'
|
||||||
default_docker_targets='["local"]'
|
default_sys_targets='["x86_64-v1-linux-gnu"]'
|
||||||
|
|
||||||
if test ! -z "$cargo_profile"; then
|
if test ! -z "$cargo_profile"; then
|
||||||
env_cargo_profiles="[\"${cargo_profile}\"]"
|
env_cargo_profiles="[\"${cargo_profile}\"]"
|
||||||
@@ -46,10 +45,6 @@ if test ! -z "$sys_version"; then
|
|||||||
env_sys_versions="[\"${sys_version}\"]"
|
env_sys_versions="[\"${sys_version}\"]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ! -z "$docker_target"; then
|
|
||||||
env_docker_targets="[\"${docker_target}\"]"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -a
|
set -a
|
||||||
bake_target="${bake_target:-$@}"
|
bake_target="${bake_target:-$@}"
|
||||||
cargo_profiles="${env_cargo_profiles:-$default_cargo_profiles}"
|
cargo_profiles="${env_cargo_profiles:-$default_cargo_profiles}"
|
||||||
@@ -59,7 +54,6 @@ rust_toolchains="${env_rust_toolchains:-$default_rust_toolchains}"
|
|||||||
sys_names="${env_sys_names:-$default_sys_names}"
|
sys_names="${env_sys_names:-$default_sys_names}"
|
||||||
sys_targets="${env_sys_targets:-$default_sys_targets}"
|
sys_targets="${env_sys_targets:-$default_sys_targets}"
|
||||||
sys_versions="${env_sys_versions:-$default_sys_versions}"
|
sys_versions="${env_sys_versions:-$default_sys_versions}"
|
||||||
docker_targets="${env_docker_targets:-$default_docker_targets}"
|
|
||||||
|
|
||||||
docker_dir="$PWD/$BASEDIR"
|
docker_dir="$PWD/$BASEDIR"
|
||||||
builder_name="${GITHUB_ACTOR:-owo}"
|
builder_name="${GITHUB_ACTOR:-owo}"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ default_feat_set="all"
|
|||||||
default_rust_toolchain="nightly"
|
default_rust_toolchain="nightly"
|
||||||
default_rust_target="x86_64-unknown-linux-gnu"
|
default_rust_target="x86_64-unknown-linux-gnu"
|
||||||
default_sys_name="debian"
|
default_sys_name="debian"
|
||||||
default_sys_target="x86_64-linux-gnu"
|
default_sys_target="x86_64-v1-linux-gnu"
|
||||||
default_sys_version="testing-slim"
|
default_sys_version="testing-slim"
|
||||||
|
|
||||||
set -a
|
set -a
|
||||||
|
|||||||
Reference in New Issue
Block a user