Add gitlab/github CI for testing and releases
This commit is contained in:
84
.github/workflows/create-release.yml
vendored
Normal file
84
.github/workflows/create-release.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
name: Create Release
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: build release archives
|
||||
run: make
|
||||
- name: create release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: LibFreeMedia ${{ github.ref_name }}
|
||||
body: LibFreeMedia ${{ github.ref_name }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
- name: upload embed zip archive
|
||||
id: upload-embed-zip-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-embed.zip
|
||||
asset_name: LibFreeMedia-embed-${{ github.ref_name }}.zip
|
||||
asset_content_type: application/zip
|
||||
- name: upload embed tar.gz archive
|
||||
id: upload-embed-targz-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-embed.tar.gz
|
||||
asset_name: LibFreeMedia-embed${{ github.ref_name }}.tar.gz
|
||||
asset_content_type: application/x-gtar
|
||||
- name: upload embed tar.xz archive
|
||||
id: upload-embed-tarxz-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-embed.tar.xz
|
||||
asset_name: LibFreeMedia-embed-${{ github.ref_name}}.tar.xz
|
||||
asset_content_type: application/x-gtar
|
||||
- name: upload standalone zip archive
|
||||
id: upload-standalone-zip-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-standalone.zip
|
||||
asset_name: LibFreeMedia-standalone-${{ github.ref_name }}.zip
|
||||
asset_content_type: application/zip
|
||||
- name: upload standalone tar.gz archive
|
||||
id: upload-standalone-targz-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-standalone.tar.gz
|
||||
asset_name: LibFreeMedia-standalone-${{ github.ref_name }}.tar.gz
|
||||
asset_content_type: application/x-gtar
|
||||
- name: upload standalone tar.xz archive
|
||||
id: upload-standalone-tarxz-archive
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./release/LibFreeMedia-standalone.tar.xz
|
||||
asset_name: LibFreeMedia-standalone-${{ github.ref_name }}.tar.xz
|
||||
asset_content_type: application/x-gtar
|
13
.github/workflows/test-commits.yml
vendored
Normal file
13
.github/workflows/test-commits.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: Test Commit
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: build release archives
|
||||
run: make
|
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