Refactor build configs and improve CI/CD checks
This commit makes the build process more robust, simplifies configurations and reduce the risk of incomplete or erroneous deployments. - Centralize output directory definitions by introducing `dist-dirs.json`. - Add `verify-build-artifacts` utility to ensure correct build outputs and `print-dist-dir` to determine distribution directory. - Add steps in CI/CD pipeline to verify build artifacts. - Migrate Electron Builder config from YAML to CJS for capability to read JSON. - Fix `release-site.yaml` failing due to pointing to wrong distribution directory, change it to use `print-dist-dir`. - Improve `check-desktop-runtime-errors` to verify build artifacts for more reliable builds. Ensure tests fail and succeed reliably. - Update `.gitignore` and configure ESLint to use it to define and ignore build artifact directories from one place, remove `.eslintignore` that does not add anything after this change. - Keep `"main"` field in `package.json` as `electron-vite` depends on it (alex8088/electron-vite#270). - Improve documentation
This commit is contained in:
15
.github/workflows/checks.build.yaml
vendored
15
.github/workflows/checks.build.yaml
vendored
@@ -29,8 +29,11 @@ jobs:
|
||||
name: Install dependencies
|
||||
run: npm ci
|
||||
-
|
||||
name: Build
|
||||
name: Build web
|
||||
run: npm run build -- --mode ${{ matrix.mode }}
|
||||
-
|
||||
name: Verify web build artifacts
|
||||
run: npm run check:verify-build-artifacts -- --web
|
||||
|
||||
build-desktop:
|
||||
strategy:
|
||||
@@ -54,11 +57,17 @@ jobs:
|
||||
name: Install dependencies
|
||||
run: npm ci
|
||||
-
|
||||
name: Prebuild
|
||||
name: Prebuild desktop
|
||||
run: npm run electron:prebuild -- --mode ${{ matrix.mode }}
|
||||
-
|
||||
name: Build
|
||||
name: Verify unbundled desktop build artifacts
|
||||
run: npm run check:verify-build-artifacts -- --electron-unbundled
|
||||
-
|
||||
name: Build (bundle and package) desktop application
|
||||
run: npm run electron:build -- --publish never
|
||||
-
|
||||
name: Verify bundled desktop build artifacts
|
||||
run: npm run check:verify-build-artifacts -- --electron-bundled
|
||||
|
||||
create-icons:
|
||||
strategy:
|
||||
|
||||
12
.github/workflows/release.site.yaml
vendored
12
.github/workflows/release.site.yaml
vendored
@@ -94,11 +94,21 @@ jobs:
|
||||
name: "App: Build"
|
||||
run: npm run build
|
||||
working-directory: app
|
||||
-
|
||||
name: "App: Verify web build artifacts"
|
||||
run: npm run check:verify-build-artifacts -- --web
|
||||
working-directory: app
|
||||
-
|
||||
name: "App: Deploy to S3"
|
||||
shell: bash
|
||||
run: >-
|
||||
declare web_output_dir
|
||||
if ! web_output_dir=$(cd app && node scripts/print-dist-dir.js --web); then
|
||||
echo 'Error: Could not determine distribution directory.'
|
||||
exit 1
|
||||
fi
|
||||
bash "aws/scripts/deploy/deploy-to-s3.sh" \
|
||||
--folder app/dist \
|
||||
--folder "${web_output_dir}" \
|
||||
--web-stack-name privacysexy-web-stack --web-stack-s3-name-output-name S3BucketName \
|
||||
--storage-class ONEZONE_IA \
|
||||
--role-arn ${{secrets.AWS_S3_SITE_DEPLOYMENT_ROLE_ARN}} \
|
||||
|
||||
Reference in New Issue
Block a user