Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,28 @@ ARG DEBIAN_CODENAME=trixie
FROM mcr.microsoft.com/devcontainers/go:${GO_VERSION}-${DEBIAN_CODENAME}

ARG PG_MAJOR=16
ARG MARIADB_MAJOR=12.0.2

USER root

# Add PostgreSQL and MariaDB official repositories (detect codename from /etc/os-release)
# ensure /tmp is writable for apt GPG verification under rootless podman
RUN chmod 1777 /tmp

RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
wget ca-certificates gnupg curl \
&& wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg \
&& echo "deb http://apt.postgresql.org/pub/repos/apt $(. /etc/os-release && echo $VERSION_CODENAME)-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
&& curl -LsSO https://r.mariadb.com/downloads/mariadb_repo_setup \
&& chmod +x mariadb_repo_setup \
&& ./mariadb_repo_setup --mariadb-server-version="mariadb-${MARIADB_MAJOR}" --skip-maxscale --skip-tools \
&& rm -f mariadb_repo_setup \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
postgresql-${PG_MAJOR} postgresql-client-${PG_MAJOR} \
mariadb-server mariadb-client \
&& rm -rf /var/lib/apt/lists/*

COPY --from=ghcr.io/foundry-rs/foundry:latest /usr/local/bin/anvil /usr/local/bin/anvil

# prepare user-owned data dirs for rootless startup
RUN mkdir -p /home/vscode/.local/share/pg/pgdata \
&& mkdir -p /home/vscode/.local/share/mysql \
&& mkdir -p /home/vscode/.local/share/tmp \
&& chown -R vscode:vscode /home/vscode/.local/share

# Set environment variables based on build args
ENV PG_BIN_DIR=/usr/lib/postgresql/${PG_MAJOR}/bin

USER vscode
9 changes: 2 additions & 7 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
"args": {
"GO_VERSION": "1.25",
"DEBIAN_CODENAME": "trixie",
"PG_MAJOR": "16",
"MARIADB_MAJOR": "12.0.2"
"PG_MAJOR": "16"
}
},
"customizations": {
Expand All @@ -27,14 +26,10 @@
"workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/singularity,type=bind,consistency=cached,relabel=private",
"workspaceFolder": "/workspaces/singularity",
"postCreateCommand": "/bin/bash -lc '${containerWorkspaceFolder}/.devcontainer/post-create.sh'",
"postStartCommand": "/bin/bash -lc '${containerWorkspaceFolder}/.devcontainer/start-postgres.sh && ${containerWorkspaceFolder}/.devcontainer/start-mysql.sh'",
"postStartCommand": "/bin/bash -lc '${containerWorkspaceFolder}/.devcontainer/start-postgres.sh'",
"remoteUser": "vscode",
"containerEnv": {
"GOPATH": "/home/vscode/go",
"MYSQL_DATABASE": "singularity",
"MYSQL_USER": "singularity",
"MYSQL_PASSWORD": "singularity",
"MYSQL_SOCKET": "/home/vscode/.local/share/mysql/mysql.sock",
"TMPDIR": "/home/vscode/.local/share/tmp",
"GOTMPDIR": "/home/vscode/.local/share/tmp",
"PGDATA": "/home/vscode/.local/share/pg/pgdata",
Expand Down
55 changes: 0 additions & 55 deletions .devcontainer/init-mysql.sh

This file was deleted.

31 changes: 2 additions & 29 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@ go mod download

chmod +x .devcontainer/*.sh || true

# Initialize database systems
echo "Setting up databases..."

# Create data directories
mkdir -p /home/vscode/.local/share/pg/pgdata /home/vscode/.local/share/pg /home/vscode/.local/share/mysql/data /home/vscode/.local/share/mysql/tmp /home/vscode/.local/share/mysql /home/vscode/.local/share/tmp
mkdir -p /home/vscode/.local/share/pg/pgdata /home/vscode/.local/share/pg /home/vscode/.local/share/tmp

# Initialize Postgres
if [ ! -f "/home/vscode/.local/share/pg/pgdata/PG_VERSION" ]; then
Expand All @@ -24,35 +22,10 @@ if [ ! -f "/home/vscode/.local/share/pg/pgdata/PG_VERSION" ]; then
} >> /home/vscode/.local/share/pg/pgdata/pg_hba.conf
fi

# Initialize MariaDB
if [ ! -d "/home/vscode/.local/share/mysql/data/mysql" ]; then
echo "Initializing MariaDB..."
export TMPDIR=/home/vscode/.local/share/mysql/tmp
mariadb-install-db \
--datadir=/home/vscode/.local/share/mysql/data \
--tmpdir=/home/vscode/.local/share/mysql/tmp \
--auth-root-authentication-method=normal \
--skip-test-db >/dev/null
fi

# Start both servers
echo "Starting database servers..."
echo "Starting database server..."
.devcontainer/start-postgres.sh
.devcontainer/start-mysql.sh

# Create users (databases will be created during testing as needed)
echo "Creating database users..."

# Postgres setup
psql -h localhost -p 55432 -d postgres -c "CREATE USER singularity WITH SUPERUSER CREATEDB CREATEROLE LOGIN;"

# MySQL setup
mariadb --socket=/home/vscode/.local/share/mysql/mysql.sock -uroot <<SQL
CREATE USER 'singularity'@'localhost' IDENTIFIED BY 'singularity';
CREATE USER 'singularity'@'%' IDENTIFIED BY 'singularity';
GRANT ALL PRIVILEGES ON *.* TO 'singularity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'singularity'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SQL

echo "Database setup completed successfully"
50 changes: 0 additions & 50 deletions .devcontainer/start-mysql.sh

This file was deleted.

8 changes: 0 additions & 8 deletions .github/actions/go-test-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@ runs:
username: 'singularity'
password: 'singularity'
database: 'singularity'
- name: Setup MySQL database
uses: shogo82148/actions-setup-mysql@v1
with:
user: 'singularity'
password: 'singularity'
- name: Create MySQL database
shell: bash
run: mysql -u root -e "create database singularity"
- run: |
echo "GOTESTFLAGS=$GOTESTFLAGS -timeout=30m" >> $GITHUB_ENV
echo "GO386FLAGS=$GO386FLAGS -timeout=30m" >> $GITHUB_ENV
Expand Down
3 changes: 1 addition & 2 deletions cmd/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@ var App = &cli.App{
Name: "singularity",
Usage: "A tool for large-scale clients with PB-scale data onboarding to Filecoin network",
Description: `Database Backend Support:
Singularity supports multiple database backend: sqlite3, postgres, mysql5.7+
Singularity supports sqlite3 and postgres as database backends.
Use '--database-connection-string' or $DATABASE_CONNECTION_STRING to specify the database connection string.
Example for postgres - postgres://user:pass@example.com:5432/dbname
Example for mysql - mysql://user:pass@tcp(localhost:3306)/dbname?parseTime=true
Example for sqlite3 - sqlite:/absolute/path/to/database.db
or - sqlite:relative/path/to/database.db

Expand Down
9 changes: 1 addition & 8 deletions database/connstring.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

"github.com/cockroachdb/errors"
"github.com/glebarez/sqlite"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
Expand Down Expand Up @@ -42,13 +41,7 @@ func open(connString string, config *gorm.Config) (*gorm.DB, io.Closer, error) {
}

if strings.HasPrefix(connString, "mysql://") {
logger.Info("Opening mysql database")
db, err = gorm.Open(mysql.Open(connString[8:]), config)
if err != nil {
return nil, nil, errors.WithStack(err)
}
closer, err = db.DB()
return db, closer, errors.WithStack(err)
return nil, nil, errors.New("MySQL is no longer supported as of v0.8. Migrate to PostgreSQL -- see docs/installation/upgrade.md")
}

return nil, nil, ErrDatabaseNotSupported
Expand Down
9 changes: 1 addition & 8 deletions database/connstring_cgo.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"strings"

"github.com/cockroachdb/errors"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
Expand Down Expand Up @@ -42,13 +41,7 @@ func open(connString string, config *gorm.Config) (*gorm.DB, io.Closer, error) {
}

if strings.HasPrefix(connString, "mysql://") {
logger.Info("Opening mysql database")
db, err = gorm.Open(mysql.Open(connString[8:]), config)
if err != nil {
return nil, nil, errors.WithStack(err)
}
closer, err = db.DB()
return db, closer, errors.WithStack(err)
return nil, nil, errors.New("MySQL is no longer supported as of v0.8. Migrate to PostgreSQL -- see docs/installation/upgrade.md")
}

return nil, nil, ErrDatabaseNotSupported
Expand Down
9 changes: 1 addition & 8 deletions database/connstring_win32.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"strings"

"github.com/cockroachdb/errors"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
Expand All @@ -28,13 +27,7 @@ func open(connString string, config *gorm.Config) (*gorm.DB, io.Closer, error) {
}

if strings.HasPrefix(connString, "mysql://") {
logger.Info("Opening mysql database")
db, err = gorm.Open(mysql.Open(connString[8:]), config)
if err != nil {
return nil, nil, errors.WithStack(err)
}
closer, err = db.DB()
return db, closer, errors.WithStack(err)
return nil, nil, errors.New("MySQL is no longer supported as of v0.8. Migrate to PostgreSQL -- see docs/installation/upgrade.md")
}

return nil, nil, ErrDatabaseNotSupported
Expand Down
Loading
Loading