From 4f699a3a2b4fa2aef0ebba865975db39b9d72f2b Mon Sep 17 00:00:00 2001 From: "Natalie B." <22222885+espeon@users.noreply.github.com> Date: Sat, 9 Aug 2025 19:27:44 -0500 Subject: [PATCH] i love ci --- .github/workflows/ci.yml | 24 +++++++++++-- .github/workflows/release.yml | 66 +++++++++++++++++++++++++++++++--- .github/workflows/security.yml | 19 +++++++++- services/cadet/Dockerfile | 1 - 4 files changed, 102 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c116561..9ec9870 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,23 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + + - name: Install dependencies and generate lexicons + run: | + pnpm install --frozen-lockfile + pnpm lex:gen --rust-only + - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: @@ -107,6 +124,9 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + - name: Install pnpm uses: pnpm/action-setup@v4 @@ -124,5 +144,5 @@ jobs: - name: Check lexicon generation run: | - pnpm lex:gen-server - git diff --exit-code || (echo "Lexicon files are out of sync. Run 'pnpm lex:gen-server' locally." && exit 1) + pnpm lex:gen + git diff --exit-code || (echo "Lexicon files are out of sync. Run 'pnpm lex:gen' locally." && exit 1) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 98f42d9..9ac2327 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -71,6 +71,23 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + + - name: Install dependencies and generate lexicons + run: | + pnpm install --frozen-lockfile + pnpm lex:gen --rust-only + - name: Log in to Container Registry uses: docker/login-action@v3 with: @@ -102,7 +119,7 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@v5 with: - context: ./apps/aqua + context: . file: ./apps/aqua/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} @@ -122,6 +139,23 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + + - name: Install dependencies and generate lexicons + run: | + pnpm install --frozen-lockfile + pnpm lex:gen --rust-only + - name: Log in to Container Registry uses: docker/login-action@v3 with: @@ -153,7 +187,7 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@v5 with: - context: ./services/cadet + context: . file: ./services/cadet/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} @@ -185,6 +219,27 @@ jobs: echo "has_dockerfile=false" >> $GITHUB_OUTPUT fi + - name: Setup lexicons + if: steps.check.outputs.has_dockerfile == 'true' + run: ./scripts/setup-lexicons.sh + + - name: Install pnpm + if: steps.check.outputs.has_dockerfile == 'true' + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + if: steps.check.outputs.has_dockerfile == 'true' + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + + - name: Install dependencies and generate lexicons + if: steps.check.outputs.has_dockerfile == 'true' + run: | + pnpm install --frozen-lockfile + pnpm lex:gen --rust-only + - name: Log in to Container Registry if: steps.check.outputs.has_dockerfile == 'true' uses: docker/login-action@v3 @@ -221,7 +276,7 @@ jobs: if: steps.check.outputs.has_dockerfile == 'true' uses: docker/build-push-action@v5 with: - context: ./services/${{ matrix.service }} + context: . file: ./services/${{ matrix.service }}/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} @@ -250,8 +305,11 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + - name: Generate lexicons - run: pnpm lex:gen-server + run: pnpm lex:gen - name: Build for all platforms run: | diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 8bdf63c..a1291d6 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -139,10 +139,27 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + - name: Setup lexicons + run: ./scripts/setup-lexicons.sh + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + + - name: Install dependencies and generate lexicons + run: | + pnpm install --frozen-lockfile + pnpm lex:gen --rust-only + - name: Build Docker image uses: docker/build-push-action@v5 with: - context: ${{ matrix.service == 'aqua' && './apps/aqua' || './services/cadet' }} + context: . file: ${{ matrix.service == 'aqua' && './apps/aqua/Dockerfile' || './services/cadet/Dockerfile' }} load: true tags: ${{ matrix.service }}:latest diff --git a/services/cadet/Dockerfile b/services/cadet/Dockerfile index c668ff7..3a37974 100644 --- a/services/cadet/Dockerfile +++ b/services/cadet/Dockerfile @@ -41,7 +41,6 @@ RUN npm install -g pnpm # Install dependencies and generate lexicons RUN pnpm install -RUN pnpm lex:gen --rust-only # Install cross-compilation toolchains RUN rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu -- 2.51.2