stages:
  - build
  - release

Build:
  stage: build
  when: manual
  variables:
    GIT_SUBMODULE_STRATEGY: recursive
  script:
    - make all
    - make check-fuzz
    - echo VERSION=$(cat version) >> variables.env
    - echo RELEASE=$(cat release) >> variables.env
    - echo BUILD_JOB_ID=$CI_JOB_ID >> variables.env
  artifacts:
    paths:
      - librewolf-*.source.tar.gz
      - librewolf-*.source.tar.gz.sha256sum
      - librewolf-*.source.tar.gz.sig
      - patchfail-fuzz.out
    reports:
      dotenv: variables.env

Release:
  stage: release
  when: manual
  allow_failure: false
  image: ubuntu
  needs:
    - job: "Build"
      artifacts: true
  only:
    - main
  except:
    - merge_requests
  before_script:
    - apt-get update
    - apt-get install -y curl
    - curl -L --output /usr/local/bin/release-cli "https://release-cli-downloads.s3.amazonaws.com/latest/release-cli-linux-amd64"
    - chmod +x /usr/local/bin/release-cli
  script:
    - |
      curl \
        --header "JOB-TOKEN: $CI_JOB_TOKEN" \
        --upload-file librewolf-$VERSION-$RELEASE.source.tar.gz \
        "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf-source/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.source.tar.gz"
    - |
      curl \
        --header "JOB-TOKEN: $CI_JOB_TOKEN" \
        --upload-file librewolf-$VERSION-$RELEASE.source.tar.gz.sha256sum \
        "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf-source/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.source.tar.gz.sha256sum"
  release:
    tag_name: "$VERSION-$RELEASE"
    description: "## LibreWolf Source Release v$VERSION-$RELEASE\n\n- \n\n(Built on GitLab by job [$BUILD_JOB_ID](https://gitlab.com/librewolf-community/browser/source/-/jobs/$BUILD_JOB_ID))"
    assets:
      links:
        - name: librewolf-$VERSION-$RELEASE.source.tar.gz
          link_type: package
          url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf-source/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.source.tar.gz
        - name: librewolf-$VERSION-$RELEASE.source.tar.gz.sha256sum
          link_type: other
          url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf-source/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.source.tar.gz.sha256sum
        - name: librewolf-$VERSION-$RELEASE.source.tar.gz.sig
          link_type: other
          url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf-source/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.source.tar.gz.sig