mirror of
https://github.com/SmartHoneybee/ubiquitous-memory
synced 2025-10-24 15:23:49 +02:00
* Update to Mattermost v7.3.0 * Install Node via NVM instead of the apt repo The NVM setup script didn't work if the script was running with /bin/sh, so this makes it run under Bash instead. The Node version that the webapp is using is now the one we install for use with the webapp build process.
97 lines
3.0 KiB
YAML
97 lines
3.0 KiB
YAML
name: Package and release
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
env:
|
|
DEBIAN_RELEASE: buster
|
|
DOCKER_PWD: /root
|
|
DOCKER_IMAGE: debian:${DEBIAN_RELEASE}
|
|
GO_VERSION: 1.18.1
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: dragonfly
|
|
arch: amd64
|
|
- os: freebsd
|
|
arch: amd64
|
|
- os: freebsd
|
|
arch: arm
|
|
- os: linux
|
|
arch: arm
|
|
- os: linux
|
|
arch: arm64
|
|
- os: linux
|
|
arch: mips
|
|
- os: linux
|
|
arch: mips64
|
|
- os: linux
|
|
arch: mips64le
|
|
- os: linux
|
|
arch: mipsle
|
|
- os: linux
|
|
arch: ppc64
|
|
- os: linux
|
|
arch: ppc64le
|
|
- os: linux
|
|
arch: s390x
|
|
- os: netbsd
|
|
arch: amd64
|
|
- os: netbsd
|
|
arch: arm
|
|
- os: openbsd
|
|
arch: amd64
|
|
- os: openbsd
|
|
arch: arm
|
|
|
|
steps:
|
|
- name: Clone repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set environment from runtime properties
|
|
run: |
|
|
echo "MATTERMOST_RELEASE=$(grep 'mattermost-server' dependabot/go.mod | cut -d' ' -f2)" >> $GITHUB_ENV
|
|
echo "MMCTL_RELEASE=v7.3.0" >> $GITHUB_ENV
|
|
|
|
- name: Pull docker image
|
|
run: 'docker pull "${{ env.DOCKER_IMAGE }}"'
|
|
|
|
- name: Build
|
|
env:
|
|
GOOS: ${{ matrix.os }}
|
|
GOARCH: ${{ matrix.arch }}
|
|
run: docker run --mount="type=bind,source=$PWD,destination=${{ env.DOCKER_PWD }}" --rm=true --tty=true --workdir="${{ env.DOCKER_PWD }}" -e DEBIAN_RELEASE -e MATTERMOST_RELEASE -e MMCTL_RELEASE -e GOOS -e GOARCH "${{ env.DOCKER_IMAGE }}" ./build.sh
|
|
|
|
- name: Tag release
|
|
if: github.ref == 'refs/heads/master'
|
|
uses: actions/github-script@v3
|
|
# this throws an error if the tag already exists. can't find a way around that without writing our own Github REST client or forking github's scripts repo.
|
|
# would prefer to do this before any of these jobs run, but we need to know the mattermost version which only happens after a clone. could potentially
|
|
# setup a separate job which does clone + tag, but felt like this was "good enough" for now.
|
|
continue-on-error: true
|
|
with:
|
|
script: |
|
|
github.git.createRef({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
ref: 'refs/tags/${{ env.MATTERMOST_RELEASE }}',
|
|
sha: context.sha
|
|
})
|
|
|
|
- name: Create Github release
|
|
if: github.ref == 'refs/heads/master'
|
|
uses: softprops/action-gh-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ env.MATTERMOST_RELEASE }}
|
|
files: |
|
|
mattermost-${{ env.MATTERMOST_RELEASE }}-${{ matrix.os }}-${{ matrix.arch }}.tar.gz
|
|
mattermost-${{ env.MATTERMOST_RELEASE }}-${{ matrix.os }}-${{ matrix.arch }}.tar.gz.sha512sum
|