diff --git a/.github/julia/generate_binaries.jl b/.github/julia/generate_binaries.jl index 1a211952fb..727fc69f0b 100644 --- a/.github/julia/generate_binaries.jl +++ b/.github/julia/generate_binaries.jl @@ -86,7 +86,7 @@ for (platform, libdir, ext) in platforms else @warn("The tarball deps.tar.gz is missing in $(tarball_name)!") end - else - @warn("The tarball for the platform $platform was not generated!") + # else + # @warn("The tarball for the platform $platform was not generated!") end end diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 73417caa42..97fd33e4f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,12 +1,14 @@ name: Release + on: push: # Sequence of patterns matched against refs/tags tags: - 'v*' # Push events to matching v*, i.e. v1.0, v2023.11.15 + jobs: - build: - name: GALAHAD -- Release ${{ github.ref_name }} + build-linux: + name: GALAHAD -- Linux -- Release ${{ github.ref_name }} runs-on: ubuntu-latest steps: - name: Checkout GALAHAD @@ -26,24 +28,110 @@ jobs: run: | julia --color=yes -e 'using Pkg; Pkg.add("BinaryBuilder")' julia --color=yes .github/julia/build_tarballs.jl x86_64-linux-gnu-libgfortran5 --verbose - rm -r ~/.julia + - name: Archive artifact + run: julia --color=yes .github/julia/generate_binaries.jl + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: linux + path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-linux-gnu-libgfortran5.tar.gz + + build-windows: + name: GALAHAD -- Windows -- Release ${{ github.ref_name }} + runs-on: ubuntu-latest + steps: + - name: Checkout GALAHAD + uses: actions/checkout@v4 + - name: Install Julia + uses: julia-actions/setup-julia@v2 + with: + version: "1.7" + arch: x64 + - name: Set the environment variables BINARYBUILDER_AUTOMATIC_APPLE, GALAHAD_RELEASE, GALAHAD_COMMIT + shell: bash + run: | + echo "BINARYBUILDER_AUTOMATIC_APPLE=true" >> $GITHUB_ENV + echo "GALAHAD_RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV + echo "GALAHAD_COMMIT=${{ github.sha }}" >> $GITHUB_ENV - name: Cross-compilation of GALAHAD -- x86_64-w64-mingw32-libgfortran5 run: | julia --color=yes -e 'using Pkg; Pkg.add("BinaryBuilder")' julia --color=yes .github/julia/build_tarballs.jl x86_64-w64-mingw32-libgfortran5 --verbose - rm -r ~/.julia + - name: Archive artifact + run: julia --color=yes .github/julia/generate_binaries.jl + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: windows + path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-w64-mingw32-libgfortran5.zip + + build-mac-intel: + name: GALAHAD -- macOS (Intel) -- Release ${{ github.ref_name }} + runs-on: macos-latest + steps: + - name: Checkout GALAHAD + uses: actions/checkout@v4 + - name: Install Julia + uses: julia-actions/setup-julia@v2 + with: + version: "1.7" + arch: x64 + - name: Set the environment variables BINARYBUILDER_AUTOMATIC_APPLE, GALAHAD_RELEASE, GALAHAD_COMMIT + shell: bash + run: | + echo "BINARYBUILDER_AUTOMATIC_APPLE=true" >> $GITHUB_ENV + echo "GALAHAD_RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV + echo "GALAHAD_COMMIT=${{ github.sha }}" >> $GITHUB_ENV - name: Cross-compilation of GALAHAD -- x86_64-apple-darwin-libgfortran5 run: | julia --color=yes -e 'using Pkg; Pkg.add("BinaryBuilder")' julia --color=yes .github/julia/build_tarballs.jl x86_64-apple-darwin-libgfortran5 --verbose - rm -r ~/.julia + - name: Archive artifact + run: julia --color=yes .github/julia/generate_binaries.jl + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: mac-intel + path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-apple-darwin-libgfortran5.tar.gz + + build-mac-arm: + name: GALAHAD -- macOS (ARM) -- Release ${{ github.ref_name }} + runs-on: macos-latest + steps: + - name: Checkout GALAHAD + uses: actions/checkout@v4 + - name: Install Julia + uses: julia-actions/setup-julia@v2 + with: + version: "1.7" + arch: x64 + - name: Set the environment variables BINARYBUILDER_AUTOMATIC_APPLE, GALAHAD_RELEASE, GALAHAD_COMMIT + shell: bash + run: | + echo "BINARYBUILDER_AUTOMATIC_APPLE=true" >> $GITHUB_ENV + echo "GALAHAD_RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV + echo "GALAHAD_COMMIT=${{ github.sha }}" >> $GITHUB_ENV - name: Cross-compilation of GALAHAD -- aarch64-apple-darwin-libgfortran5 run: | julia --color=yes -e 'using Pkg; Pkg.add("BinaryBuilder")' julia --color=yes .github/julia/build_tarballs.jl aarch64-apple-darwin-libgfortran5 --verbose - rm -r ~/.julia - - name: Generate the binaries + - name: Archive artifact run: julia --color=yes .github/julia/generate_binaries.jl + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: mac-arm + path: ./GALAHAD_binaries.${{ github.ref_name }}.aarch64-apple-darwin-libgfortran5.tar.gz + + release: + name: Create Release and Upload Binaries + needs: [build-linux, build-windows, build-mac-intel, build-mac-arm] + runs-on: ubuntu-latest + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: ./artifacts - name: Create a new release uses: actions/create-release@v1 id: create_release @@ -52,7 +140,7 @@ jobs: prerelease: false release_name: ${{ github.ref_name }} tag_name: ${{ github.ref_name }} - body: + body: "Release ${{ github.ref_name }}" env: GITHUB_TOKEN: ${{ github.token }} - name: upload Linux artifact @@ -61,7 +149,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-linux-gnu-libgfortran5.tar.gz + asset_path: ./artifacts/GALAHAD_binaries.${{ github.ref_name }}.x86_64-linux-gnu-libgfortran5.tar.gz asset_name: GALAHAD.${{ github.ref_name }}.linux.tar.gz asset_content_type: application/gzip - name: upload Mac (Intel) artifact @@ -70,7 +158,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-apple-darwin-libgfortran5.tar.gz + asset_path: ./artifacts/GALAHAD_binaries.${{ github.ref_name }}.x86_64-apple-darwin-libgfortran5.tar.gz asset_name: GALAHAD.${{ github.ref_name }}.mac-intel.tar.gz asset_content_type: application/gzip - name: upload Mac (ARM) artifact @@ -79,7 +167,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./GALAHAD_binaries.${{ github.ref_name }}.aarch64-apple-darwin-libgfortran5.tar.gz + asset_path: ./artifacts/GALAHAD_binaries.${{ github.ref_name }}.aarch64-apple-darwin-libgfortran5.tar.gz asset_name: GALAHAD.${{ github.ref_name }}.mac-arm.tar.gz asset_content_type: application/gzip - name: upload Windows artifact @@ -88,6 +176,6 @@ jobs: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./GALAHAD_binaries.${{ github.ref_name }}.x86_64-w64-mingw32-libgfortran5.zip + asset_path: ./artifacts/GALAHAD_binaries.${{ github.ref_name }}.x86_64-w64-mingw32-libgfortran5.zip asset_name: GALAHAD.${{ github.ref_name }}.windows.zip asset_content_type: application/zip