diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb29207..82bbf1b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,29 +1,39 @@ -workflow: +stages: + - build + - release + +variables: + BUN_VERSION: "1.2.17" + +build_app: + stage: build + image: oven/bun:${BUN_VERSION} + script: + - bun i + - bun run route:sync + - bun build --compile --minify-whitespace --minify-syntax --target bun --outfile "server-compiled" ./src/index.ts + artifacts: + paths: + - server-compiled + expire_in: 1 hour rules: - if: $CI_COMMIT_TAG -stages: - - build_and_release - -build-and-release: - stage: build_and_release - image: oven/bun:latest +create_release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: build_app + artifacts: true script: - - echo "🚀 Memulai proses build untuk tag $CI_COMMIT_TAG..." - - bun install --frozen-lockfile - - bun run route:sync - - bun build --compile --minify-whitespace --minify-syntax --target bun --outfile "server-compiled" ./src/index.ts - - echo "✅ Build selesai. File 'server-compiled' telah dibuat." + - echo "Creating release and uploading server-compiled... (link:\ ${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/server-compiled)" release: - tag_name: "$CI_COMMIT_TAG" name: "Release $CI_COMMIT_TAG" - description: "Rilis otomatis berisi aplikasi server yang sudah dicompile." + tag_name: "$CI_COMMIT_TAG" + description: "Automated release for commit $CI_COMMIT_SHA" assets: links: - name: "server-compiled" url: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/server-compiled" - link_type: "other" - artifacts: - paths: - - server-compiled - expire_in: never + rules: + - if: $CI_COMMIT_TAG