Skip to content

Commit

Permalink
Merge pull request #400 from eclipse-tractusx/chore/release_workflow
Browse files Browse the repository at this point in the history
chore: replace release workflow
  • Loading branch information
tomaszbarwicki authored Jan 11, 2024
2 parents 96cf734 + e22bd8a commit 0ddd8a8
Show file tree
Hide file tree
Showing 3 changed files with 149 additions and 100 deletions.
104 changes: 104 additions & 0 deletions .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# #############################################################################
# Copyright (c) 2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
# #############################################################################

on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
name: Create release-automation GitHub Release
env:
APP_NAME: 'release-automation'

jobs:
prepare-release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.release.outputs[format('{0}--upload_url', env.APP_NAME)] }}
release_created: ${{ steps.release.outputs[format('{0}--release_created', env.APP_NAME)] }}
version: ${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--patch', env.APP_NAME)] }}
steps:
- uses: google-github-actions/release-please-action@v4
name: Prepare release
id: release
with:
path: ${{ env.APP_NAME }}
release-type: go
- uses: actions/checkout@v4
- name: Tag major and minor versions
if: ${{ steps.release.outputs.release-automation--release_created }}
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/eclipse-tractusx/sig-release.git"
git tag -d v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }} || true
git tag -d v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }} || true
git push origin :v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }} || true
git push origin :v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }} || true
git tag -a v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }} -m "Release v${{ steps.release.outputs.release-automation--major }}"
git tag -a v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)]}}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }} -m "Release v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }}"
git push origin v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)]}}
git push origin v${{ steps.release.outputs[format('{0}--major',env.APP_NAME)] }}.${{ steps.release.outputs[format('{0}--minor', env.APP_NAME)] }}
build-assets:
if: ${{ needs.prepare-release.outputs.release_created }}
runs-on: ubuntu-latest
needs: prepare-release
strategy:
matrix:
goos: [linux, windows, darwin]
goarch: [amd64]
include:
- goos: darwin
goarch: arm64
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: 'release-automation/go.mod'
- name: Build windows binary
if: ${{ matrix.goos == 'windows' }}
run: env GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go build -o ${{ github.workspace }}/bin/${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}.exe
working-directory: ${{ github.workspace }}/${{ env.APP_NAME }}
- name: Upload windows release assets
if: ${{ matrix.goos == 'windows' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.upload_url }}
asset_path: ${{ github.workspace }}/bin/${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}.exe
asset_name: ${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}.exe
asset_content_type: application/octet-stream
- name: Build other binaries
if: ${{ matrix.goos != 'windows' }}
run: env GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go build -o ${{ github.workspace }}/bin/${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}
working-directory: ${{ github.workspace }}/${{ env.APP_NAME }}
- name: Upload other release assets
if: ${{ matrix.goos != 'windows' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.upload_url }}
asset_path: ${{ github.workspace }}/bin/${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}
asset_name: ${{ env.APP_NAME }}-${{ needs.prepare-release.outputs.version }}-${{ matrix.goos }}-${{ matrix.goarch }}
asset_content_type: application/octet-stream
100 changes: 0 additions & 100 deletions .github/workflows/release.yaml

This file was deleted.

45 changes: 45 additions & 0 deletions action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# #############################################################################
# Copyright (c) 2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
# #############################################################################

name: "eclipse-tractusx-quality-checks"
description: "Run quality checks based on the release guidelines"
inputs:
version:
description: The version of the quality checks release to use
required: true
default: "0.1.0"
platform:
description: The platform architecture where the quality checks runs on
required: true
default: "linux-amd64"

runs:
using: composite
steps:
- name: Download quality checks binary
run: curl -OL https://github.com/eclipse-tractusx/sig-release/releases/download/v${{ inputs.version }}/release-automation-${{ inputs.version }}-${{ inputs.platform }}
shell: bash

- name: Make binary executable
run: chmod +x ./release-automation-${{ inputs.version }}-${{ inputs.platform }}
shell: bash

- name: Run quality checks
run: ./release-automation-${{ inputs.version }}-${{ inputs.platform }} checkLocal
shell: bash

0 comments on commit 0ddd8a8

Please sign in to comment.