on: [push, pull_request] jobs: mirror: runs-on: bookworm if: github.event_name == 'push' steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: "mirror repo: code.forgejo.org" env: FORGEJO_DEST: code.forgejo.org FORGEJO_KEY: ${{ secrets.cfo_api_key }} run: ./.action-forgejo-mirror.sh build-forgejo-deb: runs-on: bullseye steps: - uses: actions/checkout@v4 with: submodules: true - uses: actions/setup-node@v3 with: node-version: 20 - uses: actions/setup-go@v4 with: go-version: "1.22" check-latest: true - name: "actions prep: build-forgejo-deb" id: ciprep run: ./.ci-make.sh actions-prep build-forgejo-deb - name: fetch tags run: | git config --add safe.directory '*' git fetch --tags --force git submodule foreach 'git fetch --tags --force' - uses: crystal/install-jq-action@v2.1.0 - run: ./.ci-make.sh ci-verify forgejo - run: ./.ci-make.sh submodule-make forgejo deps-frontend - run: ./.ci-make.sh submodule-make forgejo deps-backend - name: tag pre-condition run: | cd forgejo git update-ref refs/heads/tag_test $(git rev-parse --verify HEAD) - run: ./.ci-make.sh submodule-make forgejo security-check - run: ./.ci-make.sh submodule-make forgejo frontend - run: ./.ci-make.sh submodule-make forgejo checks-backend - name: Download Forgejo binary run: ./.ci-make.sh download-binary forgejo-bin-dl - name: Build Forgejo for amd64 run: ./.ci-make.sh submodule-build forgejo forgejo-bin env: TAGS: bindata - name: Build Forgejo (with SQLite) for amd64 run: ./.ci-make.sh submodule-build forgejo forgejo-sqlite-bin env: TAGS: bindata sqlite sqlite_unlock_notify - run: ./.ci-make.sh package-prep - run: ./.ci-make.sh package-build-deps - run: ./.ci-make.sh package-build actions - run: ./.ci-make.sh package-clean - name: build repo package run: | cd repo-deb ./build.sh actions - name: generate sha256 run: | ./.ci-make.sh pkg-gen-sha256 ./.ci-make.sh preview-sha256 - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb - uses: actions/upload-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} path: | *.deb *.deb.sha256 repo-deb/*.deb installtest-bookworm-sqlite: runs-on: bookworm steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb installtest-bullseye-sqlite: runs-on: bullseye steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb installtest-buster-sqlite: runs-on: buster steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb installtest-bookworm-user: runs-on: bookworm steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh test-userinst-prep - run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb testsuite-repo-upgrade-sqlite: runs-on: bookworm steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo-sqlite - run: ./.ci-make.sh force-clean-forgejo - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb - run: ./.ci-make.sh verify-data-dir-chmod installtest-buster-bin: runs-on: buster steps: - uses: actions/checkout@v4 - name: "actions prep: installtest" id: ciprep run: ./.ci-make.sh actions-prep installtest - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb publish-release-repo: runs-on: bookworm if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v4 - name: actions prep id: ciprep run: ./.ci-make.sh actions-prep - uses: actions/download-artifact@v3 with: name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} - uses: crystal/install-jq-action@v2.1.0 - run: mkdir forgejo-release - run: mv *.deb *.deb.sha256 forgejo-release/ - uses: actions/forgejo-release@v1 with: direction: upload url: https://codeberg.org token: ${{ secrets.codeberg_api_key }} release-dir: forgejo-release - uses: actions/forgejo-release@v1 with: direction: upload url: https://code.forgejo.org token: ${{ secrets.cfo_api_key }} release-dir: forgejo-release - name: Debian package registry publish env: FORGEJO_SITE: https://code.forgejo.org FORGEJO_OWNER: forgejo-contrib DEBIAN_DIST: bullseye DEBIAN_COMPONENT: forgejo-lts FORGEJO_KEY: ${{ secrets.cfo_api_key }} run: | cd forgejo-release ../.ci-forgejo-apt.sh *.deb cd ..