Skip to content

feat: support dualstack S3 Express endpoints #1910

feat: support dualstack S3 Express endpoints

feat: support dualstack S3 Express endpoints #1910

Workflow file for this run

name: Build (Linux)
on:
pull_request:
branches:
- master
# This ensures that previous jobs for the PR are canceled when the PR is
# updated.
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build:
name: Test on Go ${{ matrix.go-version }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [1.25.x, 1.26.x]
os: [ubuntu-latest]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: ${{ matrix.go-version }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Build on ${{ matrix.os }}
env:
MINT_MODE: full
SERVER_ENDPOINT: localhost:9000
ACCESS_KEY: minioadmin
SECRET_KEY: minioadmin
ENABLE_HTTPS: 1
MINIO_KMS_SECRET_KEY: my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=
SSL_CERT_FILE: /tmp/certs-dir/public.crt
MINIO_CI_CD: true
MINT_NO_FULL_OBJECT: true
run: |
sudo apt update -y
sudo apt install devscripts -y
mkdir -p /tmp/certs-dir
cp testcerts/* /tmp/certs-dir
# Test against the AIStor :edge-daily image so the latest AIStor APIs
# (object annotations) and checksum algorithms (xxhash3/xxhash128,
# sha512, md5) are available to the functional tests.
docker pull quay.io/minio/aistor/minio:edge-daily
# Free-tier AIStor license so the server allows writes (without a
# license the server boots read-only). This is a public FREE-plan
# license, not a secret.
MINIO_LICENSE="eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJhaWQiOjAsImNhcCI6MCwiaWF0IjoxLjc4MDAzMTY0NTUyMzA5ODM1OGU5LCJpc3MiOiJzdWJuZXRAbWluLmlvIiwibGlkIjoiYjNhYTliNGQtOTUxYy00MjIzLTgyMmEtZGY2NjE5MDNjOWFkIiwibm9kZXMiOjEsIm9yZyI6IiIsInBsYW4iOiJGUkVFIiwicHJvZHVjdCI6IkFJU3RvciIsInN1YiI6ImRldkBtaW5pby5pbyIsInRyaWFsIjpmYWxzZX0.Aq0kaFgd5SMHYEK7fIYzPsU4xlS119sj-BSyftCDpmtHIbW6KNFXGA9nbKPc17ZXKgcQgUoaPncsq30EOy7PyH-lp3LPpy3rPoD7ptJHI2v0jqpvlnP0cVGK0Yuw3vib"
docker rm -f aistor >/dev/null 2>&1 || true
docker run -d --name aistor \
-p 9000:9000 \
-v /tmp/certs-dir:/certs \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-e MINIO_CI_CD=true \
-e MINIO_KMS_SECRET_KEY="${MINIO_KMS_SECRET_KEY}" \
-e MINIO_LICENSE="${MINIO_LICENSE}" \
quay.io/minio/aistor/minio:edge-daily \
server --quiet --certs-dir /certs /data/{1...4}
for _ in $(seq 1 60); do
if curl -sf --cacert /tmp/certs-dir/public.crt https://localhost:9000/minio/health/ready >/dev/null; then
break
fi
sleep 1
done
make