Release #71
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
workflow_dispatch: | |
jobs: | |
create-release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
packages: write | |
outputs: | |
upload_url: ${{ steps.release.outputs.upload_url }} | |
revision: ${{ steps.revision.outputs.revision }} | |
steps: | |
- id: release | |
uses: release-drafter/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- id: revision | |
run: echo "revision=$(echo '${{ steps.release.outputs.tag_name }}' | cut -c2-)" >> $GITHUB_OUTPUT | |
build: | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
pull-requests: write | |
packages: write | |
needs: create-release | |
strategy: | |
matrix: | |
os: [ macos-latest, windows-latest, ubuntu-latest ] | |
include: | |
- os: ubuntu-latest | |
cli_assembly_id: linux-amd64 | |
cli_assembly_format: tar.gz | |
- os: windows-latest | |
cli_assembly_id: windows-amd64 | |
cli_assembly_format: zip | |
gu_executable_ext: .cmd | |
- os: macos-latest | |
cli_assembly_id: macos-amd64 | |
cli_assembly_format: tar.gz | |
steps: | |
- uses: ilammy/msvc-dev-cmd@v1 | |
if: ${{ matrix.os == 'windows-latest'}} | |
- run: ldd --version | |
if: ${{ matrix.os == 'ubuntu-latest'}} | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- uses: Project-Env/[email protected] | |
- uses: repolevedavaj/[email protected] | |
with: | |
nsis-version: 3.08 | |
if: ${{ matrix.os == 'windows-latest'}} | |
- run: mvn -B -s etc/m2/settings.xml deploy -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
env: | |
GITHUB_USER: ${{ github.actor }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" | |
if: ${{ matrix.os != 'ubuntu-latest' }} | |
env: | |
GITHUB_USER: ${{ github.actor }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: repolevedavaj/create-cli-app-nsis-installer@main | |
if: ${{ matrix.os == 'windows-latest'}} | |
with: | |
package-identifier: ProjectEnv.ProjectEnvCli | |
package-name: Project-Env Cli | |
package-version: ${{ needs.create-release.outputs.revision }} | |
source-directory: code/cli/target/cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }} | |
- name: Sign and notarize executable | |
if: ${{ matrix.os == 'macos-latest'}} | |
run: ../../../etc/github-actions/sign-and-notarize-executable.sh | |
working-directory: code/cli/target | |
env: | |
EXECUTABLE_NAME: project-env-cli | |
EXECUTABLE_PACKAGE_NAME: cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }} | |
EXECUTABLE_ID: io.projectenv.core.cli | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_ID_TEAM: ${{ secrets.APPLE_ID_TEAM }} | |
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
APPLE_IDENTITY: ${{ secrets.APPLE_IDENTITY }} | |
- uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.create-release.outputs.upload_url }} | |
asset_path: code/cli/target/cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }} | |
asset_name: cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }} | |
asset_content_type: application/octet-stream | |
- uses: actions/upload-release-asset@v1 | |
if: ${{ matrix.os == 'windows-latest'}} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.create-release.outputs.upload_url }} | |
asset_path: code/cli/target/cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}-setup.exe | |
asset_name: cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}-setup.exe | |
asset_content_type: application/octet-stream |