Loading .gitlab-ci.yml +4 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,10 @@ include: inputs: wiki_token: $CI_PUSH_TOKEN stages: - build - test-federation build image: stage: build image: docker:latest Loading .gitlab/ci/federation_test.yml +87 −52 Original line number Diff line number Diff line # # TODO: different modes of testing based on branch # - inside MR: test against testing instances # - main branch: test against important public instances # TODO: require manual trigger inside MRs as not every test is needed every commit # # Federation test CI jobs. # Two modes: Docker (MR) / Production (main). .fed test: &fed_test stage: test dependencies: [] .fed_job: &fed_job stage: test-federation needs: [] # image: node:24-alpine image: registry.sc07.dev/sc07/fedi-testkit/node:24-pptr services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis variables: DATABASE_URL: postgres://postgres@postgres:5432/fediauth REDIS_URI: redis://redis SESSION_SECRET: test TEST_FEDERATION_MODE: KEYRING PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium-browser TESTKIT_PUPPETEER_ARGS: --no-sandbox DATABASE_URL: postgres://postgres@postgres/postgres REDIS_URI: redis://redis:6379/0 before_script: - corepack enable && corepack prepare - yarn - npx -w backend prisma migrate deploy - npx -w backend prisma generate - corepack enable - yarn workspaces focus @fediverse-auth/backend - yarn workspace @fediverse-auth/backend prisma generate script: - yarn workspace @fediverse-auth/backend run ci:test - yarn workspace @fediverse-auth/backend run ci:test:federation after_script: - docker compose -f ./node_modules/@sc07/fedi-testkit/src/docker/compose/${TEST_SOFTWARE}/docker-compose.yml down --volumes --remove-orphans 2>/dev/null || true artifacts: when: always paths: - backend/vitest.xml reports: junit: backend/vitest.xml paths: - backend/vitest.xml mr test federation: when: manual parallel: matrix: - TEST_FEDERATION_KEYRING_SERVICE: - grants.cafe - toast.ooo - piefed.grant.rip - mbin.grant.rip .docker_job: &docker_job <<: *fed_job variables: FEDERATION_MODE: docker services: - name: docker:dind - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" <<: *fed_test - if: ${CI_PIPELINE_SOURCE} == "merge_request_event" when: manual test federation: parallel: matrix: - TEST_FEDERATION_KEYRING_SERVICE: - mastodon.social - mastodon.world - lemmy.world - piefed.social - pixelfed.social mr:federation:mastodon: <<: *docker_job variables: TEST_SOFTWARE: mastodon mr:federation:lemmy: <<: *docker_job variables: TEST_SOFTWARE: lemmy mr:federation:piefed: <<: *docker_job variables: TEST_SOFTWARE: piefed mr:federation:mbin: <<: *docker_job variables: TEST_SOFTWARE: mbin mr:federation:pixelfed: <<: *docker_job variables: TEST_SOFTWARE: pixelfed .prod_job: &prod_job <<: *fed_job variables: FEDERATION_MODE: production TEST_FEDERATION_MODE: KEYRING services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis rules: - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH <<: *fed_test No newline at end of file - if: ${CI_PIPELINE_SOURCE} == "push" && ${CI_COMMIT_BRANCH} == ${CI_DEFAULT_BRANCH} when: on_success prod:federation:mastodon: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: mastodon.social prod:federation:lemmy: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: lemmy.world prod:federation:piefed: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: piefed.social prod:federation:pixelfed: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: pixelfed.social Loading
.gitlab-ci.yml +4 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,10 @@ include: inputs: wiki_token: $CI_PUSH_TOKEN stages: - build - test-federation build image: stage: build image: docker:latest Loading
.gitlab/ci/federation_test.yml +87 −52 Original line number Diff line number Diff line # # TODO: different modes of testing based on branch # - inside MR: test against testing instances # - main branch: test against important public instances # TODO: require manual trigger inside MRs as not every test is needed every commit # # Federation test CI jobs. # Two modes: Docker (MR) / Production (main). .fed test: &fed_test stage: test dependencies: [] .fed_job: &fed_job stage: test-federation needs: [] # image: node:24-alpine image: registry.sc07.dev/sc07/fedi-testkit/node:24-pptr services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis variables: DATABASE_URL: postgres://postgres@postgres:5432/fediauth REDIS_URI: redis://redis SESSION_SECRET: test TEST_FEDERATION_MODE: KEYRING PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium-browser TESTKIT_PUPPETEER_ARGS: --no-sandbox DATABASE_URL: postgres://postgres@postgres/postgres REDIS_URI: redis://redis:6379/0 before_script: - corepack enable && corepack prepare - yarn - npx -w backend prisma migrate deploy - npx -w backend prisma generate - corepack enable - yarn workspaces focus @fediverse-auth/backend - yarn workspace @fediverse-auth/backend prisma generate script: - yarn workspace @fediverse-auth/backend run ci:test - yarn workspace @fediverse-auth/backend run ci:test:federation after_script: - docker compose -f ./node_modules/@sc07/fedi-testkit/src/docker/compose/${TEST_SOFTWARE}/docker-compose.yml down --volumes --remove-orphans 2>/dev/null || true artifacts: when: always paths: - backend/vitest.xml reports: junit: backend/vitest.xml paths: - backend/vitest.xml mr test federation: when: manual parallel: matrix: - TEST_FEDERATION_KEYRING_SERVICE: - grants.cafe - toast.ooo - piefed.grant.rip - mbin.grant.rip .docker_job: &docker_job <<: *fed_job variables: FEDERATION_MODE: docker services: - name: docker:dind - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" <<: *fed_test - if: ${CI_PIPELINE_SOURCE} == "merge_request_event" when: manual test federation: parallel: matrix: - TEST_FEDERATION_KEYRING_SERVICE: - mastodon.social - mastodon.world - lemmy.world - piefed.social - pixelfed.social mr:federation:mastodon: <<: *docker_job variables: TEST_SOFTWARE: mastodon mr:federation:lemmy: <<: *docker_job variables: TEST_SOFTWARE: lemmy mr:federation:piefed: <<: *docker_job variables: TEST_SOFTWARE: piefed mr:federation:mbin: <<: *docker_job variables: TEST_SOFTWARE: mbin mr:federation:pixelfed: <<: *docker_job variables: TEST_SOFTWARE: pixelfed .prod_job: &prod_job <<: *fed_job variables: FEDERATION_MODE: production TEST_FEDERATION_MODE: KEYRING services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_HOST_AUTH_METHOD: trust - name: redis:7-alpine alias: redis rules: - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH <<: *fed_test No newline at end of file - if: ${CI_PIPELINE_SOURCE} == "push" && ${CI_COMMIT_BRANCH} == ${CI_DEFAULT_BRANCH} when: on_success prod:federation:mastodon: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: mastodon.social prod:federation:lemmy: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: lemmy.world prod:federation:piefed: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: piefed.social prod:federation:pixelfed: <<: *prod_job variables: TEST_FEDERATION_KEYRING_SERVICE: pixelfed.social