@@ -33,277 +33,4 @@ jobs:
3333 run : npm run build
3434
3535 - name : Package action
36- run : npm run package
37-
38- test-action :
39- runs-on : ubuntu-latest
40-
41- services :
42- postgres :
43- image : postgres:17
44- env :
45- POSTGRES_USER : postgres
46- POSTGRES_PASSWORD : postgres
47- POSTGRES_DB : testdb
48- options : >-
49- --health-cmd pg_isready
50- --health-interval 10s
51- --health-timeout 5s
52- --health-retries 5
53- ports :
54- - 5432:5432
55-
56- steps :
57- - name : Checkout code
58- uses : actions/checkout@v5
59-
60- - name : Create test schema file
61- run : |
62- cat > schema.sql <<EOF
63- CREATE TABLE IF NOT EXISTS users (
64- id SERIAL PRIMARY KEY,
65- username VARCHAR(50) UNIQUE NOT NULL,
66- email VARCHAR(100) UNIQUE NOT NULL,
67- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
68- );
69-
70- CREATE TABLE IF NOT EXISTS posts (
71- id SERIAL PRIMARY KEY,
72- user_id INTEGER REFERENCES users(id),
73- title VARCHAR(200) NOT NULL,
74- content TEXT,
75- published_at TIMESTAMP,
76- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
77- );
78-
79- CREATE INDEX IF NOT EXISTS idx_posts_user_id ON posts(user_id);
80- CREATE INDEX IF NOT EXISTS idx_posts_published_at ON posts(published_at);
81- EOF
82-
83- - name : Create baseline schema
84- run : |
85- cat > baseline.sql <<EOF
86- CREATE TABLE IF NOT EXISTS users (
87- id SERIAL PRIMARY KEY,
88- username VARCHAR(50) UNIQUE NOT NULL,
89- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
90- );
91- EOF
92-
93- - name : Test PostgreSQL action (dry-run)
94- uses : ./
95- env :
96- GITHUB_EVENT_NAME : push
97- with :
98- command : psqldef
99- version : latest
100- baseline-schema-file : baseline.sql
101- schema-file : schema.sql
102- pg-user : postgres
103- pg-password : postgres
104- pg-host : localhost
105- pg-port : 5432
106- pg-database : testdb
107-
108- test-mysql :
109- runs-on : ubuntu-latest
110-
111- services :
112- mysql :
113- image : mysql:8.0
114- env :
115- MYSQL_ROOT_PASSWORD : root
116- MYSQL_DATABASE : testdb
117- options : >-
118- --health-cmd="mysqladmin ping"
119- --health-interval=10s
120- --health-timeout=5s
121- --health-retries=5
122- ports :
123- - 3306:3306
124-
125- steps :
126- - name : Checkout code
127- uses : actions/checkout@v5
128-
129- - name : Create MySQL test schema file
130- run : |
131- cat > schema.sql <<EOF
132- CREATE TABLE IF NOT EXISTS users (
133- id INT AUTO_INCREMENT PRIMARY KEY,
134- username VARCHAR(50) UNIQUE NOT NULL,
135- email VARCHAR(100) UNIQUE NOT NULL,
136- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
137- );
138-
139- CREATE TABLE IF NOT EXISTS posts (
140- id INT AUTO_INCREMENT PRIMARY KEY,
141- user_id INT,
142- title VARCHAR(200) NOT NULL,
143- content TEXT,
144- published_at TIMESTAMP NULL,
145- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
146- FOREIGN KEY (user_id) REFERENCES users(id),
147- INDEX idx_posts_user_id (user_id),
148- INDEX idx_posts_published_at (published_at)
149- );
150- EOF
151-
152- - name : Create baseline schema
153- run : |
154- cat > baseline.sql <<EOF
155- CREATE TABLE IF NOT EXISTS users (
156- id INT AUTO_INCREMENT PRIMARY KEY,
157- username VARCHAR(50) UNIQUE NOT NULL,
158- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
159- );
160- EOF
161-
162- - name : Test MySQL action
163- uses : ./
164- env :
165- GITHUB_EVENT_NAME : push
166- with :
167- command : mysqldef
168- version : latest
169- baseline-schema-file : baseline.sql
170- schema-file : schema.sql
171- mysql-user : root
172- mysql-password : root
173- mysql-host : 127.0.0.1
174- mysql-port : 3306
175- mysql-database : testdb
176-
177- test-sqlite :
178- runs-on : ubuntu-latest
179-
180- steps :
181- - name : Checkout code
182- uses : actions/checkout@v5
183-
184- - name : Create SQLite test schema file
185- run : |
186- cat > schema.sql <<EOF
187- CREATE TABLE users (
188- id INTEGER PRIMARY KEY AUTOINCREMENT,
189- username TEXT UNIQUE NOT NULL,
190- email TEXT UNIQUE NOT NULL,
191- created_at TEXT
192- );
193-
194- CREATE TABLE posts (
195- id INTEGER PRIMARY KEY AUTOINCREMENT,
196- user_id INTEGER REFERENCES users(id),
197- title TEXT NOT NULL,
198- content TEXT,
199- published_at TEXT,
200- created_at TEXT
201- );
202-
203- CREATE INDEX idx_posts_user_id ON posts(user_id);
204- CREATE INDEX idx_posts_published_at ON posts(published_at);
205- EOF
206-
207- - name : Create baseline schema
208- run : |
209- cat > baseline.sql <<EOF
210- CREATE TABLE users (
211- id INTEGER PRIMARY KEY AUTOINCREMENT,
212- username TEXT UNIQUE NOT NULL,
213- created_at TEXT
214- );
215- EOF
216- # Create empty database file
217- touch test.db
218-
219- - name : Test SQLite action
220- uses : ./
221- env :
222- GITHUB_EVENT_NAME : push
223- with :
224- command : sqlite3def
225- version : latest
226- baseline-schema-file : baseline.sql
227- schema-file : schema.sql
228- sqlite-database : test.db
229-
230- test-mssql :
231- runs-on : ubuntu-latest
232- continue-on-error : true
233-
234- services :
235- sqlserver :
236- image : mcr.microsoft.com/mssql/server:2022-latest
237- env :
238- ACCEPT_EULA : Y
239- SA_PASSWORD : YourStrong@Passw0rd
240- MSSQL_PID : Developer
241- options : >-
242- --health-cmd "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Passw0rd' -Q 'SELECT 1' -No"
243- --health-interval 10s
244- --health-timeout 5s
245- --health-retries 10
246- ports :
247- - 1433:1433
248-
249- steps :
250- - name : Checkout code
251- uses : actions/checkout@v5
252-
253- - name : Wait for SQL Server
254- run : |
255- sudo apt-get update && sudo apt-get install -y mssql-tools18
256- for i in {1..30}; do
257- /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Passw0rd' -Q 'SELECT 1' -No && break
258- echo "Waiting for SQL Server..."
259- sleep 2
260- done
261- /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Passw0rd' -Q "CREATE DATABASE testdb" -No
262-
263- - name : Create test schema file
264- run : |
265- cat > schema.sql <<EOF
266- CREATE TABLE users (
267- id INT IDENTITY(1,1) PRIMARY KEY,
268- username NVARCHAR(50) UNIQUE NOT NULL,
269- email NVARCHAR(100) UNIQUE NOT NULL,
270- created_at DATETIME2 DEFAULT GETDATE()
271- );
272-
273- CREATE TABLE posts (
274- id INT IDENTITY(1,1) PRIMARY KEY,
275- user_id INT FOREIGN KEY REFERENCES users(id),
276- title NVARCHAR(200) NOT NULL,
277- content NTEXT,
278- published_at DATETIME2,
279- created_at DATETIME2 DEFAULT GETDATE()
280- );
281-
282- CREATE INDEX idx_posts_user_id ON posts(user_id);
283- CREATE INDEX idx_posts_published_at ON posts(published_at);
284- EOF
285-
286- - name : Create baseline schema
287- run : |
288- cat > baseline.sql <<EOF
289- CREATE TABLE users (
290- id INT IDENTITY(1,1) PRIMARY KEY,
291- username NVARCHAR(50) UNIQUE NOT NULL,
292- created_at DATETIME2 DEFAULT GETDATE()
293- );
294- EOF
295-
296- - name : Test MSSQL action
297- uses : ./
298- env :
299- GITHUB_EVENT_NAME : push
300- with :
301- command : mssqldef
302- version : latest
303- baseline-schema-file : baseline.sql
304- schema-file : schema.sql
305- mssql-user : sa
306- mssql-password : YourStrong@Passw0rd
307- mssql-host : localhost
308- mssql-port : 1433
309- mssql-database : testdb
36+ run : npm run package
0 commit comments