name: CI # Spustí se při pushi do devel/release a jde i ručně spustit z GUI. on: push: branches: [devel, release] workflow_dispatch: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "22" - name: Zapnutí pnpm run: corepack enable - name: Instalace závislostí run: pnpm install --frozen-lockfile - name: ESLint run: pnpm lint - name: Testy run: pnpm test env: PAYLOAD_SECRET: ci-placeholder-min-32-znaku-dlouhy-retezec DATABASE_URI: file:./data/ci.db # `next build` uvnitř sebe spouští i kontrolu typů. - name: Build run: pnpm build env: PAYLOAD_SECRET: ci-placeholder-min-32-znaku-dlouhy-retezec DATABASE_URI: file:./data/ci.db build-and-push: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Docker jméno musí být malými písmeny (Honza/Zbrane-Reiner-Web -> honza/zbrane-reiner-web) - name: Název image run: | echo "IMAGE=gitea.doubynet.eu/$(echo '${{ github.repository }}' \ | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_ENV" # release -> latest (produkce), devel -> devel (staging) - name: Značka podle větve run: | if [ "${{ github.ref_name }}" = "release" ]; then echo "MOVING_TAG=latest" >> "$GITHUB_ENV" else echo "MOVING_TAG=devel" >> "$GITHUB_ENV" fi - name: Přihlášení do Gitea registry run: | echo '${{ secrets.REGISTRY_TOKEN }}' \ | docker login gitea.doubynet.eu -u '${{ github.actor }}' --password-stdin - name: Build image run: docker build -t "$IMAGE:$MOVING_TAG" -t "$IMAGE:${{ github.sha }}" . - name: Push image run: | docker push "$IMAGE:$MOVING_TAG" docker push "$IMAGE:${{ github.sha }}"