Add gitlab/github CI for testing and releases

This commit is contained in:
2023-05-20 01:09:36 +02:00
parent 0a80d90186
commit 034de92456
3 changed files with 181 additions and 0 deletions

84
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,84 @@
stages:
- test
- package
- release
# Run the tests only on commits, never on tags for now this just builds the
# release archives to make sure that works
test:
stage: test
rules:
- if: $CI_COMMIT_BRANCH
image: alpine:3
before_script:
- echo PACKAGE_JOB_ID=$CI_JOB_ID >> package.env
- apk add xz 7zip make
script:
- make
# Build the release archives and keep them forever as an artifact. Only runs on
# tag pushes
package:
stage: package
rules:
- if: $CI_COMMIT_TAG
image: alpine:3
before_script:
- echo PACKAGE_JOB_ID=$CI_JOB_ID >> package.env
- apk add xz 7zip make
script:
- make
image: alpine:3
before_script:
- echo PACKAGE_JOB_ID=$CI_JOB_ID >> package.env
- apk add xz 7zip make
script:
- make
artifacts:
expire_in: never
paths:
- release/LibFreeMedia-embed.tar.gz
- release/LibFreeMedia-embed.tar.xz
- release/LibFreeMedia-embed.zip
- release/LibFreeMedia-standalone.tar.gz
- release/LibFreeMedia-standalone.tar.xz
- release/LibFreeMedia-standalone.zip
reports:
dotenv: package.env
# Create a release with the previously generated artifacts. Only runs on tag
# pushes
release:
stage: release
rules:
- if: $CI_COMMIT_TAG
image: registry.gitlab.com/gitlab-org/release-cli:latest
script:
- echo 'Creating release'
needs:
- job: package
artifacts: true
release:
tag_name: $CI_COMMIT_TAG
name: 'LibFreeMedia $CI_COMMIT_TAG'
description: 'LibFreeMedia $CI_COMMIT_TAG'
assets:
links:
- name: 'LibFreeMedia embedable release'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-embed.zip'
filepath: '/archive/freemedia-embed-zip'
- name: 'LibFreeMedia embedable release (tar.xz archive)'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-embed.tar.xz'
filepath: '/archive/freemedia-embed-tarxz'
- name: 'LibFreeMedia embedable release (tar.gz archive)'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-embed.tar.gz'
filepath: '/archive/freemedia-embed-targz'
- name: 'LibFreeMedia standalone addon'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-standalone.zip'
filepath: '/archive/freemedia-standalone-zip'
- name: 'LibFreeMedia standalone addon (tar.xz archive)'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-standalone.tar.xz'
filepath: '/archive/freemedia-standalone-tarxz'
- name: 'LibFreeMedia standalone addon (tar.gz archive)'
url: 'https://gitlab.com/omicron-oss/wow/libfreemedia/-/jobs/${PACKAGE_JOB_ID}/artifacts/raw/release/LibFreeMedia-standalone.tar.gz'
filepath: '/archive/freemedia-standalone-targz'