Skip to content

Commit

Permalink
fix: docker image tags
Browse files Browse the repository at this point in the history
  • Loading branch information
tuxity committed Mar 21, 2024
1 parent 5b8760a commit 0587dec
Showing 1 changed file with 79 additions and 6 deletions.
85 changes: 79 additions & 6 deletions .github/workflows/server-ci-enterprise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,74 @@ jobs:
path: server/dist/
retention-days: 14

- name: Create GitHub Release
uses: actions/github-script@v7
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
env:
TAG_NAME: ${{ github.ref_name }}
RELEASE_NAME: ${{ github.ref_name }}
BODY: "Full Changelog: https://github.com/${{ github.repository }}/commits/${{ github.ref_name }}"
ASSETS: >-
server/dist/mattermost-enterprise-linux-amd64.tar.gz,
server/dist/mattermost-enterprise-linux-arm64.tar.gz,
server/dist/mattermost-enterprise-osx-amd64.tar.gz,
server/dist/mattermost-enterprise-osx-arm64.tar.gz,
server/dist/mattermost-enterprise-windows-amd64.zip
with:
script: |
const fs = require('fs');
const path = require('path');
const { TAG_NAME, RELEASE_NAME, BODY, ASSETS } = process.env;
const assets = ASSETS.split(',');
let uploadUrl = '';
try {
const response = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: TAG_NAME,
name: RELEASE_NAME,
body: BODY,
draft: false,
prerelease: false,
});
console.log(`Release created: ${response.data.html_url}`);
uploadUrl = response.data.upload_url;
} catch (error) {
if (error.response && error.response.status === 422) {
core.warning(`Release already exists for tag ${TAG_NAME}. Skipping release creation and asset uploads.`);
return;
} else {
core.setFailed(`Error creating release: ${error.message}`);
return;
}
}
if (uploadUrl) {
for (const asset of assets) {
const assetPath = path.join(process.env.GITHUB_WORKSPACE, asset.trim());
const contentType = asset.endsWith('.zip') ? 'application/zip' : 'application/gzip';
console.log(`Uploading asset: ${asset}`);
try {
const uploadResponse = await github.rest.repos.uploadReleaseAsset({
url: uploadUrl,
headers: {
'content-type': contentType,
'content-length': fs.statSync(assetPath).size
},
name: asset.trim(),
data: fs.readFileSync(assetPath),
});
console.log(`Asset uploaded: ${uploadResponse.data.browser_download_url}`);
} catch (uploadError) {
core.error(`Error uploading asset: ${asset}, ${uploadError.message}`);
}
}
}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

Expand All @@ -73,10 +141,16 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set version
id: version
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: echo "::set-output name=version::${GITHUB_REF#refs/tags/v}"
- name: Extract metadata (tags, labels) for Docker image
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/tuxity/mattermost-enterprise-edition
flavor: |
latest=false
tags: |
type=semver,pattern={{version}},value=${{ github.ref_name }}
type=raw,value=latest,enable=${{ !startsWith(github.ref, 'refs/tags/v') }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
Expand All @@ -88,7 +162,6 @@ jobs:
MM_PACKAGE=file:///tmp/mattermost-enterprise-linux-amd64.tar.gz
platforms: linux/amd64
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
tags: |
ghcr.io/tuxity/mattermost-enterprise-edition:${{ steps.version.outputs.version }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max

0 comments on commit 0587dec

Please sign in to comment.