Compare commits
1 Commits
master
..
108a14e51d
| Author | SHA1 | Date | |
|---|---|---|---|
| 108a14e51d |
@@ -1,76 +0,0 @@
|
|||||||
name: initialize database
|
|
||||||
description: initialize database by using database of test environment
|
|
||||||
author: BinKrassDuFass
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
MONGODB_SERVICE_NAME:
|
|
||||||
description: 'Name of the MongoDB service'
|
|
||||||
required: true
|
|
||||||
default: 'mongo'
|
|
||||||
|
|
||||||
TIBI_USERNAME:
|
|
||||||
description: 'Username of the Tibi account'
|
|
||||||
required: true
|
|
||||||
default: 'admin'
|
|
||||||
|
|
||||||
TIBI_PASSWORD:
|
|
||||||
description: 'Password of the Tibi account'
|
|
||||||
required: true
|
|
||||||
default: 'admin'
|
|
||||||
|
|
||||||
TIBI_API_URL:
|
|
||||||
description: 'URL of the Tibi API'
|
|
||||||
required: true
|
|
||||||
default: 'http://tibi-server:8080/api/v1'
|
|
||||||
|
|
||||||
TIBI_API_CONFIG_PATH:
|
|
||||||
description: 'Path of the Tibi API config'
|
|
||||||
required: true
|
|
||||||
default: "${{github.workspace}}/api/config.yml}}"
|
|
||||||
|
|
||||||
TIBI_API_NAMESPACE:
|
|
||||||
description: 'Namespace of the Tibi API'
|
|
||||||
required: true
|
|
||||||
|
|
||||||
PROJECT_NAME:
|
|
||||||
description: 'Name of the project'
|
|
||||||
required: true
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: composite
|
|
||||||
steps:
|
|
||||||
- name: Setup mongo tools
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "::group::setup Mongo keys"
|
|
||||||
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
|
|
||||||
sudo apt-get install -y gnupg
|
|
||||||
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
|
|
||||||
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::mongodb tools"
|
|
||||||
sudo apt-get update
|
|
||||||
echo "aptitude install mongodb-database-tools"
|
|
||||||
sudo apt-get install -y mongodb-database-tools
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "mongodump --version"
|
|
||||||
mongodump --version
|
|
||||||
|
|
||||||
- name: Restore MongoDB Data
|
|
||||||
run: |
|
|
||||||
echo "::group::initialize mongo data"
|
|
||||||
mongorestore --uri "mongodb://${{inputs.MONGODB_SERVICE_NAME}}:27017" ./.github/actions/init-db/mongo-dump
|
|
||||||
echo "::endgroup::"
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: set config in tibi
|
|
||||||
shell: bash
|
|
||||||
run: ./.github/actions/init-db/setConfigInTibiProject.sh ${{inputs.TIBI_USERNAME}} ${{inputs.TIBI_PASSWORD}} ${{inputs.TIBI_API_URL}} ${{inputs.TIBI_API_CONFIG_PATH}} ${{inputs.TIBI_API_NAMESPACE}} ${{inputs.PROJECT_NAME}}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
name: initialize database
|
||||||
|
description: initialize database by using database of test environment
|
||||||
|
author: BinKrassDuFass
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
MONGODB_SERVICE_NAME:
|
||||||
|
description: 'Name of the MongoDB service'
|
||||||
|
required: true
|
||||||
|
default: 'mongo'
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Install MongoDB tools
|
||||||
|
run: sudo apt-get install -y mongodb-database-tools
|
||||||
|
|
||||||
|
- name: Restore MongoDB Data
|
||||||
|
run: mongorestore --uri "mongodb://${{inputs.MONGODB_SERVICE_NAME}}:27017" /.gitea/
|
||||||
|
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
const axios = require("axios")
|
||||||
|
const { MongoClient } = require("mongodb")
|
||||||
|
const fs = require("fs")
|
||||||
|
const util = require("util")
|
||||||
|
|
||||||
|
// Function to log objects in a detailed manner
|
||||||
|
function logObj(o) {
|
||||||
|
console.log(util.inspect(o, false, null, true))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to preload the database with collections
|
||||||
|
async function preloadDatabase(db, collections) {
|
||||||
|
for (const { name, file } of collections) {
|
||||||
|
const content = fs.readFileSync(file, "utf8")
|
||||||
|
const data = JSON.parse(content)
|
||||||
|
|
||||||
|
const collection = db.collection(name)
|
||||||
|
await collection.insertMany(data)
|
||||||
|
|
||||||
|
const insertedData = await collection.find({}).toArray()
|
||||||
|
if (insertedData.length !== data.length) {
|
||||||
|
console.error(
|
||||||
|
`Mismatch in collection ${name}: expected ${data.length} documents, found ${insertedData.length}`
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
console.log(`Successfully verified ${insertedData.length} documents in ${name}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function initializeDatabase(config) {
|
||||||
|
try {
|
||||||
|
const dbClient = new MongoClient(config.mongodbUri)
|
||||||
|
await dbClient.connect()
|
||||||
|
let db = dbClient.db(config.tibiDbPrefix)
|
||||||
|
await db.collection("project").deleteMany({ namespace: config.projectApiNamespace })
|
||||||
|
|
||||||
|
const dbName = config.tibiDbPrefix + "_" + config.projectApiNamespace
|
||||||
|
db = dbClient.db(dbName)
|
||||||
|
await db.dropDatabase()
|
||||||
|
|
||||||
|
// Login to Tibi API
|
||||||
|
const loginResponse = await axios.post(config.tibiApiUrl + "/login", {
|
||||||
|
username: config.tibiUsername,
|
||||||
|
password: config.tibiPassword,
|
||||||
|
})
|
||||||
|
const tibiToken = loginResponse.data.token
|
||||||
|
|
||||||
|
// Create project
|
||||||
|
let project
|
||||||
|
try {
|
||||||
|
const projectResponse = await axios.post(
|
||||||
|
config.tibiApiUrl + "/project",
|
||||||
|
{
|
||||||
|
configFile: config.projectApiConfig,
|
||||||
|
name: config.projectApiNamespace,
|
||||||
|
namespace: config.projectApiNamespace,
|
||||||
|
description: config.projectApiNamespace,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
"X-Auth-Token": tibiToken,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
project = projectResponse.data
|
||||||
|
} catch (e) {
|
||||||
|
logObj(e)
|
||||||
|
throw e
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if project is online
|
||||||
|
const projectStatus = await axios.get(config.tibiApiUrl + "/project/" + project.id, {
|
||||||
|
headers: {
|
||||||
|
"X-Auth-Token": tibiToken,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if (!projectStatus.data.api.isOnline) {
|
||||||
|
throw new Error(`Project ${config.projectApiNamespace} is not online.`)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Define collections to preload into the database
|
||||||
|
const collections = [
|
||||||
|
// Define your collections here as per your Cypress plugin logic
|
||||||
|
// { name: "collectionName", file: "path/to/file.json" },
|
||||||
|
// ... other collections
|
||||||
|
]
|
||||||
|
await preloadDatabase(db, collections)
|
||||||
|
|
||||||
|
await dbClient.close()
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error initializing the database:", error)
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run the script if it's executed directly
|
||||||
|
if (require.main === module) {
|
||||||
|
const config = {
|
||||||
|
projectApiNamespace: process.env.PROJECT_API_NAMESPACE,
|
||||||
|
mongodbUri: process.env.MONGODB_URI,
|
||||||
|
tibiDbPrefix: process.env.TIBI_DB_PREFIX,
|
||||||
|
tibiApiUrl: process.env.TIBI_API_URL,
|
||||||
|
// Add other required environment variables here
|
||||||
|
}
|
||||||
|
|
||||||
|
initializeDatabase(config)
|
||||||
|
.then(() => console.log("Database initialized successfully"))
|
||||||
|
.catch((err) => {
|
||||||
|
console.error("Failed to initialize database:", err)
|
||||||
|
process.exit(1)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = initializeDatabase
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"admin.system.version"}],"uuid":"c25383adb2a64a8ca31b3bc5cbcb6690"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"admin.system.version"}],"uuid":"c25383adb2a64a8ca31b3bc5cbcb6690"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"unique":true,"key":{"name":{"$numberInt":"1"}},"name":"name_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"_fts":"text","_ftsx":{"$numberInt":"1"}},"name":"textindex","ns":"tibi.project","weights":{"name":{"$numberInt":"1"}},"default_language":"german","language_override":"language","textIndexVersion":{"$numberInt":"3"}}],"uuid":"a0a6733bdb52400f9f3b17985bc28bcc"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"unique":true,"key":{"username":{"$numberInt":"1"}},"name":"username_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"_fts":"text","_ftsx":{"$numberInt":"1"}},"name":"textindex","ns":"tibi.user","weights":{"$**":{"$numberInt":"1"}},"default_language":"german","language_override":"language","textIndexVersion":{"$numberInt":"3"}}],"uuid":"ba627bbd4ac24b3ca92aebdc33b7d4b0"}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.backups"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.backups"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.backups"}],"uuid":"4993cf280e844b5b80fe208350713002"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.banner"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.banner"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.banner"}],"uuid":"7346de51448b4a27b289a0e32336d0b6"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"meta.datum":{"$numberInt":"1"}},"name":"meta.datum_1","ns":"tibi_allkids_erfurt.content"}],"uuid":"df9951d7cf964e5e8a22360c09aa27c7"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.forms"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.forms"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.forms"}],"uuid":"7815c4dfc9d9460c8aac8cf94cc67ea6"}
|
|
||||||
Binary file not shown.
-1
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.lighthouse"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.lighthouse"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.lighthouse"}],"uuid":"fca0bbd4089a43689609593178154de9"}
|
|
||||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.lighthouseSubpath"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.lighthouseSubpath"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.lighthouseSubpath"}],"uuid":"b72120ec4cd34054a83833dce78c869f"}
|
|
||||||
Binary file not shown.
-1
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.navigation"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.navigation"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.navigation"}],"uuid":"d989bd0ea7ba4ea4ae728b8a6baa62ba"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"unique":true,"key":{"path":{"$numberInt":"1"}},"name":"path_1","ns":"tibi_allkids_erfurt.ssr"}],"uuid":"75869e19f8164beabe53366265b10208"}
|
|
||||||
-1
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.temperature"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.temperature"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.temperature"}],"uuid":"eb60c1bc334c4fa2a473fdb6c99b3e6a"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"unique":true,"key":{"name":{"$numberInt":"1"}},"name":"name_1","ns":"tibi.project"},{"v":{"$numberInt":"2"},"key":{"_fts":"text","_ftsx":{"$numberInt":"1"}},"name":"textindex","ns":"tibi.project","weights":{"name":{"$numberInt":"1"}},"default_language":"german","language_override":"language","textIndexVersion":{"$numberInt":"3"}}],"uuid":"a0a6733bdb52400f9f3b17985bc28bcc"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"unique":true,"key":{"username":{"$numberInt":"1"}},"name":"username_1","ns":"tibi.user"},{"v":{"$numberInt":"2"},"key":{"_fts":"text","_ftsx":{"$numberInt":"1"}},"name":"textindex","ns":"tibi.user","weights":{"$**":{"$numberInt":"1"}},"default_language":"german","language_override":"language","textIndexVersion":{"$numberInt":"3"}}],"uuid":"ba627bbd4ac24b3ca92aebdc33b7d4b0"}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.backups"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.backups"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.backups"}],"uuid":"4993cf280e844b5b80fe208350713002"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.banner"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.banner"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.banner"}],"uuid":"7346de51448b4a27b289a0e32336d0b6"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.content"},{"v":{"$numberInt":"2"},"key":{"meta.datum":{"$numberInt":"1"}},"name":"meta.datum_1","ns":"tibi_allkids_erfurt.content"}],"uuid":"df9951d7cf964e5e8a22360c09aa27c7"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.forms"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.forms"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.forms"}],"uuid":"7815c4dfc9d9460c8aac8cf94cc67ea6"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.navigation"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.navigation"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.navigation"}],"uuid":"d989bd0ea7ba4ea4ae728b8a6baa62ba"}
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.ssr"},{"v":{"$numberInt":"2"},"unique":true,"key":{"path":{"$numberInt":"1"}},"name":"path_1","ns":"tibi_allkids_erfurt.ssr"}],"uuid":"75869e19f8164beabe53366265b10208"}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"options":{},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"tibi_allkids_erfurt.temperature"},{"v":{"$numberInt":"2"},"key":{"insertTime":{"$numberInt":"1"}},"name":"insertTime_1","ns":"tibi_allkids_erfurt.temperature"},{"v":{"$numberInt":"2"},"key":{"updateTime":{"$numberInt":"1"}},"name":"updateTime_1","ns":"tibi_allkids_erfurt.temperature"}],"uuid":"eb60c1bc334c4fa2a473fdb6c99b3e6a"}
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Start a GitHub Actions group for input validation
|
|
||||||
echo "::group::Validating Inputs"
|
|
||||||
|
|
||||||
# Check if the correct number of arguments is passed
|
|
||||||
if [ "$#" -ne 6 ]; then
|
|
||||||
echo "Incorrect number of arguments provided."
|
|
||||||
echo "Usage: $0 <TIBI_USERNAME> <TIBI_PASSWORD> <TIBI_API_URL> <PROJECT_API_CONFIG> <PROJECT_NAMESPACE> <PROJECT_NAME>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Assigning passed arguments to variables for better readability
|
|
||||||
TIBI_USERNAME=$1
|
|
||||||
TIBI_PASSWORD=$2
|
|
||||||
TIBI_API_URL=$3
|
|
||||||
PROJECT_API_CONFIG=$4
|
|
||||||
PROJECT_NAMESPACE=$5
|
|
||||||
PROJECT_NAME=$6
|
|
||||||
|
|
||||||
echo "Provided TIBI_USERNAME: $TIBI_USERNAME"
|
|
||||||
echo "TIBI_API_URL: $TIBI_API_URL"
|
|
||||||
# Be cautious with logging sensitive data like passwords and tokens
|
|
||||||
# Echoing the password or sensitive information is generally not recommended
|
|
||||||
|
|
||||||
# End the input validation group
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# Start a group for authentication
|
|
||||||
echo "::group::Authenticating User"
|
|
||||||
|
|
||||||
# Prepare authentication request payload
|
|
||||||
auth_payload=$(jq -n --arg username "$TIBI_USERNAME" --arg password "$TIBI_PASSWORD" '{username: $username, password: $password}')
|
|
||||||
echo "Authentication payload: $auth_payload"
|
|
||||||
# Fetch the authentication token
|
|
||||||
echo "Requesting authentication token..."
|
|
||||||
auth_response=$(curl -s -X POST -H "Content-Type: application/json" -d "$auth_payload" "$TIBI_API_URL/login")
|
|
||||||
# Logging the response for debugging (remove sensitive data as necessary)
|
|
||||||
echo "Authentication response: $auth_response"
|
|
||||||
|
|
||||||
# Extract token from the response
|
|
||||||
TIBI_AUTH_TOKEN=$(echo $auth_response | jq -r '.token')
|
|
||||||
|
|
||||||
# Check if the token was successfully retrieved
|
|
||||||
if [ -z "$TIBI_AUTH_TOKEN" ]; then
|
|
||||||
echo "Failed to get authentication token. Exiting script."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Authentication token received successfully."
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# Start a group for fetching project data
|
|
||||||
echo "::group::Fetching Project Data"
|
|
||||||
|
|
||||||
# Get the list of projects from the API
|
|
||||||
echo "Retrieving projects..."
|
|
||||||
response=$(curl -s -H "X-Auth-Token: $TIBI_AUTH_TOKEN" "$TIBI_API_URL/project")
|
|
||||||
echo $response
|
|
||||||
projects=$(echo $response) # Parse the JSON response to get project data
|
|
||||||
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# Start a group for processing project data
|
|
||||||
echo "::group::Processing Project Data"
|
|
||||||
|
|
||||||
# Initialize variables to track project existence
|
|
||||||
projectFound=false
|
|
||||||
projectId=""
|
|
||||||
|
|
||||||
# Loop through each project to find if the required project exists
|
|
||||||
for row in $(echo "${projects}" | jq -r '.[] | @base64'); do
|
|
||||||
_jq() {
|
|
||||||
echo ${row} | base64 --decode | jq -r ${1}
|
|
||||||
}
|
|
||||||
|
|
||||||
api_name=$(_jq '.name')
|
|
||||||
# Check if the current project's namespace matches the target
|
|
||||||
if [ "$api_name" == "$PROJECT_NAME" ]; then
|
|
||||||
projectId=$(_jq '.id')
|
|
||||||
projectData=$(echo ${row} | base64 --decode)
|
|
||||||
projectFound=true
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# Start a group for creating or updating the project
|
|
||||||
echo "::group::Creating or Updating Project"
|
|
||||||
|
|
||||||
# Conditionally create a new project or update the existing one
|
|
||||||
if [ "$projectFound" = true ]; then
|
|
||||||
echo "Project found with ID: $projectId, updating..."
|
|
||||||
# Prepare updated project data
|
|
||||||
updatedProjectData=$(echo $projectData | jq --arg configFile "$PROJECT_API_CONFIG" '.configFile = $configFile | del(.id)')
|
|
||||||
# Send a PUT request to update the project
|
|
||||||
updateResponse=$(curl -s -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: $TIBI_AUTH_TOKEN" -d "$updatedProjectData" "$TIBI_API_URL/project/$projectId")
|
|
||||||
# Logging the response for debugging (remove sensitive data as necessary)
|
|
||||||
echo "Update response: $updateResponse"
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "Project not found. Creating new project..."
|
|
||||||
# Send a POST request to create a new project
|
|
||||||
createResponse=$(curl -s -X POST -H "Content-Type: application/json" -H "X-Auth-Token: $TIBI_AUTH_TOKEN" -d "{\"configFile\":\"$PROJECT_API_CONFIG\", \"name\":\"$PROJECT_NAMESPACE\", \"namespace\":\"$PROJECT_NAMESPACE\", \"description\":\"$PROJECT_NAMESPACE\"}" "$TIBI_API_URL/project")
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "::endgroup::"
|
|
||||||
+120
-171
@@ -5,22 +5,18 @@ jobs:
|
|||||||
lighthouse-evaluation:
|
lighthouse-evaluation:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: gitbase.de/actions/ubuntu:latest
|
image: ubuntu-latest
|
||||||
volumes:
|
|
||||||
- /data:/data
|
|
||||||
services:
|
services:
|
||||||
mongo:
|
mongo:
|
||||||
image: mongo:4.2
|
image: mongo:4.2
|
||||||
ports:
|
ports:
|
||||||
- 27017:27017
|
- 27017:27017
|
||||||
options: --name mongo
|
|
||||||
|
|
||||||
maildev:
|
maildev:
|
||||||
image: gitbase.de/robin/maildev:latest
|
image: gitbase.de/robin/maildev:latest
|
||||||
ports:
|
ports:
|
||||||
- 80:80
|
- 80:80
|
||||||
- 25:25
|
- 25:25
|
||||||
options: --name maildev
|
|
||||||
|
|
||||||
tibi-server:
|
tibi-server:
|
||||||
image: gitbase.de/cms/tibi-server
|
image: gitbase.de/cms/tibi-server
|
||||||
@@ -33,17 +29,71 @@ jobs:
|
|||||||
SECURITY_ALLOWABSOLUTEPATHS: "true"
|
SECURITY_ALLOWABSOLUTEPATHS: "true"
|
||||||
SECURITY_ALLOWUPPERPATHS: "true"
|
SECURITY_ALLOWUPPERPATHS: "true"
|
||||||
SECURITY_ALLOWRELATIVEPATHS: "true"
|
SECURITY_ALLOWRELATIVEPATHS: "true"
|
||||||
options: --name tibi-server
|
|
||||||
volumes:
|
|
||||||
- ${{ github.workspace }}:/repo
|
|
||||||
|
|
||||||
live-server:
|
live-server:
|
||||||
image: gitbase.de/robin/apache-image:latest
|
image: gitbase.de/robin/live-server:latest
|
||||||
ports:
|
ports:
|
||||||
- 8081:80
|
- 8081:8081
|
||||||
volumes:
|
steps:
|
||||||
- ${{ github.workspace }}/frontend:/usr/local/apache2/htdocs/
|
- name: Checkout code
|
||||||
options: --name live-server
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: "20"
|
||||||
|
|
||||||
|
- name: Load .env file
|
||||||
|
run: |
|
||||||
|
set -a
|
||||||
|
source .env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
- name: Initialize database
|
||||||
|
run: node /.gitea/actions/init-db
|
||||||
|
env:
|
||||||
|
PROJECT_API_NAMESPACE: $TIBI_NAMESPACE
|
||||||
|
MONGODB_URI: mongodb://mongo #service name!
|
||||||
|
TIBI_DB_PREFIX: $TIBI_PREFIX
|
||||||
|
TIBI_API_URL: http://tibi-server:8080/api/v1
|
||||||
|
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
name: deploy
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: gitbase.de/actions/ubuntu:latest
|
||||||
|
volumes:
|
||||||
|
- /data:/data
|
||||||
|
|
||||||
|
services:
|
||||||
|
mongo:
|
||||||
|
image: mongo:4.2
|
||||||
|
ports:
|
||||||
|
- 27017:27017
|
||||||
|
|
||||||
|
maildev:
|
||||||
|
image: gitbase.de/robin/maildev:latest
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 25:25
|
||||||
|
|
||||||
|
tibi-server:
|
||||||
|
image: gitbase.de/cms/tibi-server
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
env:
|
||||||
|
DB_DIAL: mongodb://mongo
|
||||||
|
API_PORT: 8080
|
||||||
|
MAIL_HOST: maildev:25
|
||||||
|
SECURITY_ALLOWABSOLUTEPATHS: "true"
|
||||||
|
SECURITY_ALLOWUPPERPATHS: "true"
|
||||||
|
SECURITY_ALLOWRELATIVEPATHS: "true"
|
||||||
|
|
||||||
|
live-server:
|
||||||
|
image: gitbase.de/robin/live-server:latest
|
||||||
|
ports:
|
||||||
|
- 8081:8081
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@@ -53,31 +103,29 @@ jobs:
|
|||||||
- name: setup node 18
|
- name: setup node 18
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
|
|
||||||
- name: Initialize database
|
- name: container within a step
|
||||||
uses: ./.github/actions/init-db
|
uses: docker://node:20-alpine3.19
|
||||||
with:
|
with:
|
||||||
TIBI_API_NAMESPACE: allkids_erfurt
|
entrypoint: echo
|
||||||
TIBI_API_CONFIG_PATH: /repo/api/config.yml
|
args: "dastest"
|
||||||
PROJECT_NAME: AllKids
|
- name: check docker networking infos
|
||||||
|
|
||||||
- name: SERVICE RESTART
|
|
||||||
uses: docker://docker
|
|
||||||
with:
|
|
||||||
args: docker restart live-server tibi-server mongo maildev
|
|
||||||
|
|
||||||
- name: Cache node modules
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
.yarn/cache
|
|
||||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-yarn-
|
|
||||||
|
|
||||||
- name: setup yarn
|
|
||||||
run: |
|
run: |
|
||||||
corepack enable
|
echo "${{ toJson(job) }}"
|
||||||
corepack prepare yarn@3.2.4 --activate
|
echo "${{ github }}"
|
||||||
|
docker network ls
|
||||||
|
docker network inspect bridge
|
||||||
|
docker network inspect host
|
||||||
|
docker network inspect none
|
||||||
|
docker network inspect container:${{ job.services.tibi-server.id }}
|
||||||
|
docker network inspect container:${{ job.services.live-server.id }}
|
||||||
|
docker network inspect container:${{ job.services.mongo.id }}
|
||||||
|
docker network inspect container:${{ job.services.maildev.id }}
|
||||||
|
|
||||||
|
- name: install dependencies
|
||||||
|
env:
|
||||||
|
FORCE_COLOR: "true"
|
||||||
|
run: |
|
||||||
|
npm install -g yarn
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
- name: modify config
|
- name: modify config
|
||||||
@@ -117,61 +165,38 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
yarn build:server
|
yarn build:server
|
||||||
|
|
||||||
#- name: Load .env file
|
- name: build legacy
|
||||||
# run: |
|
env:
|
||||||
# set -a
|
FORCE_COLOR: "true"
|
||||||
# source .env
|
|
||||||
# set + a
|
|
||||||
|
|
||||||
- name: SERVICE RESTART
|
|
||||||
uses: docker://docker
|
|
||||||
with:
|
|
||||||
args: docker restart live-server tibi-server
|
|
||||||
|
|
||||||
- name: wait for boot
|
|
||||||
run: |
|
run: |
|
||||||
sleep 15
|
yarn build:legacy
|
||||||
|
|
||||||
- name: Inspect Service Containers
|
- name: Wait for Live Server
|
||||||
run: |
|
run: |
|
||||||
for container_id in $(docker ps --format '{{.ID}}'); do
|
attempts=0
|
||||||
echo "::group:: Container logs:"
|
max_attempts=2
|
||||||
docker logs $container_id || true
|
while ! curl --output /dev/null --silent --head --fail http://live-server:8081; do
|
||||||
echo "::endgroup::"
|
if [ $attempts -eq $max_attempts ]; then
|
||||||
done
|
echo "Live server not ready after $max_attempts attempts"
|
||||||
|
echo "${{ toJson(job) }}"
|
||||||
#- name: Wait for Live Server
|
curl -v http://live-server:8081
|
||||||
# run: |
|
exit 1
|
||||||
# attempts=0
|
fi
|
||||||
# max_attempts=5
|
attempts=$((attempts+1))
|
||||||
# same port since its inside the same network, so not 8081....
|
echo "Waiting for live-server to be ready... attempt $attempts"
|
||||||
# while ! curl --fail "http://live-server:80"; do
|
sleep 5
|
||||||
# if [ $attempts -eq $max_attempts ]; then
|
done
|
||||||
# echo "Live server not ready after $max_attempts attempts"
|
|
||||||
# echo "${{ toJson(job) }}"
|
|
||||||
# curl -v "http://live-server:80" || true
|
|
||||||
# echo "::group::liveserver logs"
|
|
||||||
# docker logs live-server
|
|
||||||
# echo "::endgroup::"
|
|
||||||
# echo "::group:: tibi-server logs"
|
|
||||||
# docker logs tibi-server
|
|
||||||
# echo "::endgroup::"
|
|
||||||
# echo "::group:: tibi-server curl"
|
|
||||||
# docker exec live-server cat /var/log/apache2/access.log || true
|
|
||||||
# docker exec live-server bash -c "apt-get update && apt-get install -y curl"
|
|
||||||
# docker exec live-server echo $PATH
|
|
||||||
# docker exec live-server bash -c 'curl -v "http://tibi-server:8080/api/v1/_/allkids_erfurt/ssr?token=owshwerNwoa&url=/noindex"'
|
|
||||||
# echo "::endgroup::"
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
# attempts=$((attempts+1))
|
|
||||||
# echo "Waiting for live-server to be ready... attempt $attempts"
|
|
||||||
# sleep 5
|
|
||||||
# done
|
|
||||||
|
|
||||||
- name: Test HTTP Request
|
- name: Test HTTP Request
|
||||||
run: |
|
run: |
|
||||||
curl -v http://live-server:80
|
echo "Live server not ready after $max_attempts attempts"
|
||||||
|
echo "${{ toJson(job) }}"
|
||||||
|
echo "${{ job.services.live-server.id }}"
|
||||||
|
echo "${{ job.services.tibi-server.id }}"
|
||||||
|
echo "${{ job.services.mongo.id }}"
|
||||||
|
docker logs "${{ job.services.tibi-server.id }}"
|
||||||
|
docker logs "${{ job.services.live-server.id }}"
|
||||||
|
curl -v http://live-server:8081
|
||||||
|
|
||||||
- name: Install Chrome
|
- name: Install Chrome
|
||||||
run: |
|
run: |
|
||||||
@@ -185,94 +210,18 @@ jobs:
|
|||||||
- name: Lighthouse Analysis
|
- name: Lighthouse Analysis
|
||||||
run: |
|
run: |
|
||||||
yarn add lighthouse
|
yarn add lighthouse
|
||||||
npx lighthouse http://live-server:80 --output json --output-path /tmp/lighthouse-report.json --chrome-flags="--headless --no-sandbox --disable-dev-shm-usage"
|
npx lighthouse http://127.0.0.1:8081 --output json --output-path /tmp/lighthouse-report.json --chrome-flags="--headless --no-sandbox --disable-dev-shm-usage"
|
||||||
|
|
||||||
- name: upload-to-nextcloud
|
# Notify-Lighthouse Step
|
||||||
|
- name: Notify Lighthouse
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update && sudo apt-get install -y curl bash findutils
|
docker run --rm \
|
||||||
export datetime=`date +%Y-%m-%d_%H-%M-%S`
|
-e PLUGIN_FROM=noreply@gitbase.de \
|
||||||
mkdir -p /tmp/cloudsend/${GITHUB_REF_NAME}/$${datetime}
|
-e PLUGIN_HOST=smtp.basehosts.de \
|
||||||
mv /tmp/lighthouse-report.json /tmp/cloudsend/${GITHUB_REF_NAME}/$${datetime}/
|
-e PLUGIN_RECIPIENT=recipient@example.com \
|
||||||
./scripts/cloudsend.sh /tmp/cloudsend/ https://www.basiswolke.de/index.php/s/xHGsypbqiifnGH5
|
-e PLUGIN_SUBJECT="Lighthouse Report" \
|
||||||
|
-v ${{ github.workspace }}/tmp:/lighthouse-reports \
|
||||||
deploy:
|
drillster/drone-email /tmp/lighthouse-report.json
|
||||||
name: deploy
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: gitbase.de/actions/ubuntu:latest
|
|
||||||
volumes:
|
|
||||||
- /data:/data
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
lfs: true
|
|
||||||
submodules: true
|
|
||||||
|
|
||||||
- run: |
|
|
||||||
git fetch --force --tags
|
|
||||||
|
|
||||||
# setup node 20
|
|
||||||
- name: setup node 20
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
|
|
||||||
- name: install dependencies
|
|
||||||
run: |
|
|
||||||
npm install -g yarn
|
|
||||||
yarn install
|
|
||||||
|
|
||||||
- name: modify config
|
|
||||||
run: |
|
|
||||||
sed -i 's#\(sentryEnvironment.*\)".*"#\1"${GITHUB_REF_NAME}"#g' frontend/src/config.ts
|
|
||||||
sed -i 's#//\( sentry\\.init.*\)#\1#g' frontend/src/config.ts
|
|
||||||
set -o allexport
|
|
||||||
. ./.env
|
|
||||||
echo "PROJECT_RELEASE=${SENTRY_PROJECT}.r`git rev-list HEAD --count`-`git describe --all --long | sed 's+/+-+'`" >> .env
|
|
||||||
. ./.env
|
|
||||||
set +o allexport
|
|
||||||
echo ______ .env ______
|
|
||||||
cat .env
|
|
||||||
echo
|
|
||||||
sed -i 's#\(const release = \).*#\1"'${PROJECT_RELEASE}'"#g' api/hooks/config-client.js
|
|
||||||
sed -i 's#\(const originURL = \).*#\1"'${LIVE_URL}'"#g' api/hooks/config-client.js
|
|
||||||
|
|
||||||
# bash scripts/preload-meta.sh frontend/spa.html
|
|
||||||
# bash scripts/preload-meta.sh frontend/spa.html > frontend/_spa.html
|
|
||||||
# cp frontend/_spa.html frontend/spa.html
|
|
||||||
|
|
||||||
export stamp=`date +%s`
|
|
||||||
sed -i s/__TIMESTAMP__/$stamp/g frontend/spa.html
|
|
||||||
# sed -i s/__TIMESTAMP__/$stamp/g frontend/serviceworker.js
|
|
||||||
# cat frontend/serviceworker.js
|
|
||||||
rm api/templates/spa.html
|
|
||||||
cp frontend/spa.html api/templates/spa.html
|
|
||||||
echo ______ frontend/spa.html ______
|
|
||||||
cat frontend/spa.html
|
|
||||||
|
|
||||||
# sed -i 's#\(PREVIEW_URL=\).*#\1'${LIVE_URL}/preview'#g' api/config.yml.env
|
|
||||||
echo ______ api/config.yml.env ______
|
|
||||||
cat api/config.yml.env
|
|
||||||
|
|
||||||
- name: build
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: "true"
|
|
||||||
run: |
|
|
||||||
yarn build
|
|
||||||
|
|
||||||
- name: build ssr
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: "true"
|
|
||||||
run: |
|
|
||||||
yarn build:server
|
|
||||||
|
|
||||||
- name: build legacy
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: "true"
|
|
||||||
run: |
|
|
||||||
yarn build:legacy
|
|
||||||
|
|
||||||
- name: deploy
|
- name: deploy
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user