Update GitHub Action Versions #1879
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: Java CI with Maven | |
| env: | |
| # find out this value by opening `https://api.github.com/repos/<owner>/<repo>/releases`. then find the correct release. | |
| # in your browser and copy the full "upload_url" value including the {?name,label} part. | |
| UPLOAD_URL: https://uploads.github.com/repos/MarginallyClever/Makelangelo-software/releases/54908875/assets{?name,label} | |
| RELEASE_ID: 54908875 # same as above (id can just be taken out the upload_url, it's used to find old releases) | |
| on: | |
| push: | |
| branches: [master, main, dev] | |
| pull_request: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/[email protected] | |
| - uses: actions/[email protected] | |
| with: | |
| distribution: 'temurin' | |
| java-version: '22' | |
| cache: 'maven' | |
| - name: Build and Test with Maven | |
| run: ./mvnw -B test -Djava.awt.headless=true | |
| - name: Package with Maven | |
| run: ./mvnw -B clean package -DskipTests | |
| - name: Prepare target/package for upload | |
| shell: bash | |
| run: | | |
| mkdir -p target/package && | |
| cp src/main/package/*.bat target/package/ && | |
| cp src/main/package/start* target/package/ && | |
| cp src/main/package/thankyou.* target/package/ && | |
| cp CONTRIBUTING.md target/package/ && | |
| cp LICENSE target/package/ && | |
| cp README.md target/package/ | |
| - name: Upload common files | |
| uses: actions/[email protected] | |
| with: | |
| name: shared | |
| path: | | |
| src/main/package/jpackage* | |
| src/main/package/logo* | |
| LICENSE | |
| README | |
| target/package/* | |
| delete-nightly-assets: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' | |
| steps: | |
| - name: Delete all assets from Nightly Builds release | |
| uses: actions/github-script@v8 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| script: | | |
| const { owner, repo } = context.repo; | |
| const release_id = 54908875; // Nightly Builds release | |
| const assets = await github.rest.repos.listReleaseAssets({ owner, repo, release_id }); | |
| if (assets.data.length === 0) { | |
| console.log("No assets to delete."); | |
| } | |
| for (const asset of assets.data) { | |
| console.log(`Deleting asset: ${asset.name}`); | |
| await github.rest.repos.deleteReleaseAsset({ | |
| owner, | |
| repo, | |
| asset_id: asset.id, | |
| }); | |
| } | |
| package: | |
| needs: delete-nightly-assets | |
| strategy: | |
| matrix: | |
| include: | |
| - runs_on: macos-13 | |
| arch: x64 | |
| java_arch: x64 | |
| os_label: mac-intel | |
| - runs_on: macos-latest | |
| arch: arm64 | |
| java_arch: aarch64 | |
| os_label: mac-arm64 | |
| - runs_on: ubuntu-latest | |
| arch: x64 | |
| java_arch: x64 | |
| os_label: ubuntu | |
| - runs_on: windows-latest | |
| arch: x64 | |
| java_arch: x64 | |
| os_label: windows | |
| runs-on: ${{ matrix.runs_on }} | |
| steps: | |
| - uses: actions/[email protected] | |
| - uses: actions/[email protected] | |
| with: | |
| distribution: 'temurin' | |
| java-version: '22' | |
| architecture: ${{ matrix.java_arch }} | |
| - uses: actions/[email protected] | |
| with: | |
| name: shared | |
| - name: Build installer and rename | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| APP_VERSION=$(ls -1 target/package/Makelangelo-*-with-dependencies.jar | sed "s/.*Makelangelo-\([^-]*\)-with-dependencies.jar/\1/") | |
| sed -i.bak "s/\(--app-version\).*/\1 $APP_VERSION/" src/main/package/jpackage.cfg | |
| APP_NAME="Makelangelo-${{ matrix.os_label }}" | |
| jpackage "@src/main/package/jpackage.cfg" "@src/main/package/jpackage-${{ matrix.runs_on }}.cfg" \ | |
| --main-jar "Makelangelo-$APP_VERSION-with-dependencies.jar" \ | |
| --name "$APP_NAME" | |
| BINARY=$(find . -maxdepth 1 -iname 'makelangelo*' | grep -E '\.msi$|\.deb$|\.dmg$') | |
| EXT="${BINARY##*.}" | |
| DATE=$(date +%Y%m%d) | |
| BINARY_NIGHTLY="$APP_NAME-$DATE.$EXT" | |
| mv "$BINARY" "$BINARY_NIGHTLY" | |
| echo "BINARY_NIGHTLY=$BINARY_NIGHTLY" >> $GITHUB_ENV | |
| - name: Upload to Nightly Builds | |
| uses: WebFreak001/[email protected] | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| upload_url: ${{ env.UPLOAD_URL }} | |
| release_id: ${{ env.RELEASE_ID }} | |
| asset_path: ${{ env.BINARY_NIGHTLY }} | |
| asset_name: ${{ env.BINARY_NIGHTLY }} | |
| asset_content_type: application/octet-stream |