PureOS carries rather old versions of rustc and cargo. Attempting to build fails at transitive dependencies, and it's easier to upgrade the compiler than to track down and hold offending depencencies as they come.
		
			
				
	
	
		
			181 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
image: pureos/byzantium
 | 
						|
 | 
						|
stages:
 | 
						|
  - build
 | 
						|
  - test
 | 
						|
  - deploy
 | 
						|
 | 
						|
before_script:
 | 
						|
  - apt-get -y update
 | 
						|
  - apt-get -y install ca-certificates
 | 
						|
 | 
						|
build_docs:
 | 
						|
  stage: build
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - _build
 | 
						|
  script:
 | 
						|
    - apt-get -y install python3-pip python3-sphinx
 | 
						|
    - pip3 install recommonmark
 | 
						|
    - ./doc/build.sh _build
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
build_meson:
 | 
						|
  image: debian:bookworm
 | 
						|
  stage: build
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - _build
 | 
						|
    expire_in: 3h
 | 
						|
  script:
 | 
						|
    - mv debian/control-newer debian/control
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - meson . _build/ -Ddepdatadir=/usr/share --werror
 | 
						|
    - ninja -C _build install
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
build_deb:
 | 
						|
  stage: build
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - '*.deb'
 | 
						|
  script:
 | 
						|
    - rm -f ../*.deb
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - apt-get -y install devscripts
 | 
						|
    - REV=$(git log -1 --format=%h)
 | 
						|
    - VER=$(dpkg-parsechangelog -SVersion)
 | 
						|
    - DEBFULLNAME="Librem5 CI"
 | 
						|
    - EMAIL="librem5-builds@lists.community.puri.sm"
 | 
						|
    - dch -v"$VER+librem5ci$CI_PIPELINE_ID.$REV" "$MSG"
 | 
						|
    - debuild -i -us -uc -b
 | 
						|
    - cp ../*.deb .
 | 
						|
 | 
						|
build_deb:arm64:
 | 
						|
  image: pureos/byzantium
 | 
						|
  tags:
 | 
						|
    - aarch64
 | 
						|
  stage: build
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - '*.deb'
 | 
						|
  script:
 | 
						|
    - rm -f ../*.deb
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - apt-get -y install devscripts
 | 
						|
    - REV=$(git log -1 --format=%h)
 | 
						|
    - VER=$(dpkg-parsechangelog -SVersion)
 | 
						|
    - DEBFULLNAME="Librem5 CI"
 | 
						|
    - EMAIL="librem5-builds@lists.community.puri.sm"
 | 
						|
    - dch -v"$VER+librem5ci$CI_PIPELINE_ID.$REV" "$MSG"
 | 
						|
    - debuild -i -us -uc -b
 | 
						|
    - cp ../*.deb .
 | 
						|
 | 
						|
build_deb:future:
 | 
						|
  image: debian:sid
 | 
						|
  allow_failure: true
 | 
						|
  tags:
 | 
						|
    - aarch64
 | 
						|
  stage: build
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - '*.deb'
 | 
						|
  script:
 | 
						|
    - rm -f ../*.deb
 | 
						|
    - mv debian/control-newer debian/control
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - apt-get -y install devscripts
 | 
						|
    - REV=$(git log -1 --format=%h)
 | 
						|
    - VER=$(dpkg-parsechangelog -SVersion)
 | 
						|
    - DEBFULLNAME="Librem5 CI"
 | 
						|
    - EMAIL="librem5-builds@lists.community.puri.sm"
 | 
						|
    - dch -v"$VER+librem5ci$CI_PIPELINE_ID.$REV" "$MSG"
 | 
						|
    - debuild -i -us -uc -b
 | 
						|
    - cp ../*.deb .
 | 
						|
 | 
						|
build_reference:
 | 
						|
  image: debian:bookworm
 | 
						|
  stage: build
 | 
						|
  needs:
 | 
						|
    - job: build_meson
 | 
						|
      artifacts: true
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - _build/doc
 | 
						|
  script:
 | 
						|
    - apt-get -y install cargo
 | 
						|
    - cd _build
 | 
						|
    - ../cargo.sh doc --no-deps --document-private-items
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
test_lintian:
 | 
						|
  stage: test
 | 
						|
  needs:
 | 
						|
    - job: build_deb
 | 
						|
      artifacts: true
 | 
						|
  script:
 | 
						|
    - apt-get -y install lintian
 | 
						|
    - lintian *.deb
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
test:
 | 
						|
  image: debian:bookworm
 | 
						|
  stage: test
 | 
						|
  needs:
 | 
						|
    - job: build_meson
 | 
						|
      artifacts: true
 | 
						|
  script:
 | 
						|
    - mv debian/control-newer debian/control
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - apt-get -y install clang-tidy
 | 
						|
    - ninja -C _build test
 | 
						|
    - tools/style-check_build _build
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
test_style:
 | 
						|
  stage: test
 | 
						|
  needs: []
 | 
						|
  script:
 | 
						|
    - apt-get -y build-dep .
 | 
						|
    - tools/style-check_source
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
check_release:
 | 
						|
  stage: test
 | 
						|
  needs: []
 | 
						|
  only:
 | 
						|
    refs:
 | 
						|
      - master
 | 
						|
  script:
 | 
						|
    - apt-get -y install git python3
 | 
						|
    - (head -n 1 ./debian/changelog && git tag) | ./debian/check_release.py
 | 
						|
  except:
 | 
						|
    variables:
 | 
						|
      - $PKG_ONLY == "1"
 | 
						|
 | 
						|
pages:
 | 
						|
  stage: deploy
 | 
						|
  needs:
 | 
						|
    - build_docs
 | 
						|
    - build_reference
 | 
						|
  script:
 | 
						|
    - mv _build/ public/
 | 
						|
  artifacts:
 | 
						|
    paths:
 | 
						|
      - public
 | 
						|
  only:
 | 
						|
    refs:
 | 
						|
      - master
 |