Add gitlab/github CI for testing and releases
This commit is contained in:
84
.gitlab-ci.yml
Normal file
84
.gitlab-ci.yml
Normal 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'
|
Reference in New Issue
Block a user