refactor(#4): Créer une CI/CD pour Gitea #2
55
.gitea/workflows/deliver.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: Wallset Pipeline
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'assets/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
ENTRY_FOLDER: assets
|
||||||
|
PACKAGE_NAME: "" # Not used while matrixing
|
||||||
|
RELEASE_VERSION: v${{ github.run_number }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
detect-changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
changed: ${{ steps.set.outputs.changed }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Dump GitHub context
|
||||||
|
env:
|
||||||
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||||
|
run: echo "$GITHUB_CONTEXT"
|
||||||
|
|
||||||
|
- name: Detect changed packs
|
||||||
|
id: set
|
||||||
|
run: |
|
||||||
|
PACKS=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep '^assets/' | cut -d '/' -f2 | sort -u | jq -R -s -c 'split("\n")[:-1]')
|
||||||
|
echo "changed=$PACKS" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
gen-manifest:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: detect-changes
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
pack: ${{ fromJson(needs.detect-changes.outputs.changed) }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Node.js manifest check
|
||||||
|
run: |
|
||||||
|
cd src/
|
||||||
|
npm install
|
||||||
|
npm run start -- ${ENTRY_FOLDER} ${{ matrix.pack }}
|
||||||
|
cat ../${ENTRY_FOLDER}/${{ matrix.pack }}/theme.json
|
@@ -1,5 +1,5 @@
|
|||||||
include:
|
include:
|
||||||
- .gitlab/*.yml
|
- ./*.yml
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- Manifest
|
- Manifest
|
After Width: | Height: | Size: 606 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 1020 KiB |
After Width: | Height: | Size: 998 KiB |
After Width: | Height: | Size: 1000 KiB |
After Width: | Height: | Size: 922 KiB |
After Width: | Height: | Size: 871 KiB |
After Width: | Height: | Size: 826 KiB |
After Width: | Height: | Size: 615 KiB |
After Width: | Height: | Size: 705 KiB |
After Width: | Height: | Size: 629 KiB |
After Width: | Height: | Size: 548 KiB |
After Width: | Height: | Size: 585 KiB |
After Width: | Height: | Size: 549 KiB |
After Width: | Height: | Size: 587 KiB |
After Width: | Height: | Size: 611 KiB |
After Width: | Height: | Size: 633 KiB |
After Width: | Height: | Size: 679 KiB |
After Width: | Height: | Size: 646 KiB |
After Width: | Height: | Size: 695 KiB |
After Width: | Height: | Size: 676 KiB |
After Width: | Height: | Size: 645 KiB |
After Width: | Height: | Size: 568 KiB |
After Width: | Height: | Size: 937 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
@@ -3,13 +3,19 @@ const path = require("path");
|
|||||||
const iptc = require("node-iptc");
|
const iptc = require("node-iptc");
|
||||||
const { exit } = require("process");
|
const { exit } = require("process");
|
||||||
|
|
||||||
|
|
||||||
// Fetch envs to target the right folder
|
// Fetch envs to target the right folder
|
||||||
|
const [argRoot, argSlug] = process.argv.slice(2);
|
||||||
const workDir = process.env["CI_PROJECT_DIR"];
|
const workDir = process.env["CI_PROJECT_DIR"];
|
||||||
const root = process.env["ENTRY_FOLDER"];
|
const root = argRoot || process.env["ENTRY_FOLDER"];
|
||||||
const slug = process.env["PACKAGE_NAME"];
|
const slug = argSlug || process.env["PACKAGE_NAME"];
|
||||||
if (!workDir || !slug || !root) exit(1);
|
if (!workDir || !root || !slug ) {
|
||||||
let workingDirectory = path.join(workDir, root, slug);
|
console.error('Erreur : Les variables suivantes sont requises :');
|
||||||
|
if (!workDir) console.error('- CI_PROJECT_DIR (variable d\'environnement)');
|
||||||
|
if (!root) console.error('- ENTRY_FOLDER (env) ou premier argument');
|
||||||
|
if (!slug) console.error('- PACKAGE_NAME (env) ou second argument');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
const workingDirectory = path.join(workDir, root, slug);
|
||||||
|
|
||||||
// extract metadata from them
|
// extract metadata from them
|
||||||
fs.readdir(workingDirectory, (err, files) => {
|
fs.readdir(workingDirectory, (err, files) => {
|
||||||
|