Release #78
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/release-drafter@v6.1.0 | |
| 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 | |
| cli_assembly_arch: x86-64-v3 | |
| - os: windows-latest | |
| cli_assembly_id: windows-amd64 | |
| cli_assembly_format: zip | |
| cli_assembly_arch: x86-64-v3 | |
| gu_executable_ext: .cmd | |
| - os: macos-13 | |
| cli_assembly_id: macos-amd64 | |
| cli_assembly_format: tar.gz | |
| cli_assembly_arch: x86-64-v3 | |
| - os: macos-latest | |
| cli_assembly_id: macos-aarch64 | |
| cli_assembly_format: tar.gz | |
| cli_assembly_arch: armv8-a | |
| steps: | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| if: ${{ runner.os == 'Windows'}} | |
| - run: ldd --version | |
| if: ${{ runner.os == 'Linux'}} | |
| - 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/project-env-github-action@v1.5.0 | |
| - uses: repolevedavaj/install-nsis@v1.0.3 | |
| with: | |
| nsis-version: 3.08 | |
| if: ${{ runner.os == 'Windows'}} | |
| - 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 }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}" | |
| if: ${{ runner.os == 'Linux' }} | |
| 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 }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}" | |
| if: ${{ runner.os != 'Linux' }} | |
| env: | |
| GITHUB_USER: ${{ github.actor }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: repolevedavaj/create-cli-app-nsis-installer@main | |
| if: ${{ runner.os == 'Windows'}} | |
| 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: ${{ runner.os == 'macOS'}} | |
| 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: ${{ runner.os == 'Windows'}} | |
| 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 |