diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 08065bafa..32b1ff29c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,8 +4,6 @@ on: push: branches: - "main" - tags: - - "v*.*.*" pull_request: branches: - "main" @@ -50,12 +48,6 @@ jobs: ./ParserTests ./ZoneCodeGeneratorLibTests ./ZoneCommonTests - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: oat-linux - path: | - ${{ github.workspace }}/build/bin/Release_x86 build-test-windows: env: @@ -98,36 +90,3 @@ jobs: ./ZoneCommonTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) exit $combinedExitCode - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: oat-windows - path: | - ${{ github.workspace }}/build/bin/Release_x86 - - release: - if: startsWith(github.ref, 'refs/tags/') - needs: - - build-test-linux - - build-test-windows - runs-on: ubuntu-latest - permissions: - actions: read - contents: write - steps: - - uses: actions/download-artifact@v4 - - name: Zip artifacts - run: | - 7z a oat-linux.tar ./oat-linux/* - 7z a oat-linux.tar.gz ./oat-linux.tar - 7z a oat-windows.zip ./oat-windows/* - - uses: ncipollo/release-action@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - artifacts: "oat-linux.tar.gz,oat-windows.zip" - artifactErrorsFailBuild: true - allowUpdates: true - draft: true - omitBodyDuringUpdate: true - omitDraftDuringUpdate: true \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..232bbc09d --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,104 @@ +name: release + +on: + push: + tags: + - "v*.*.*" + +env: + PREMAKE_VERSION: "5.0.0-beta2" + +jobs: + build-release-linux: + env: + PREMAKE_CONFIG: gmake2 + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install multilib + run: | + sudo apt-get update + sudo apt-get install gcc-multilib g++-multilib + + - name: Setup premake + uses: abel0b/setup-premake@v2.3 + with: + version: ${{ env.PREMAKE_VERSION }} + + - name: Premake generate + working-directory: ${{ github.workspace }} + run: premake5 ${{ env.PREMAKE_CONFIG }} + + - name: Build + working-directory: ${{ github.workspace }} + run: make -C build -j$(nproc) config=release_x86 all + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: oat-linux + path: | + ${{ github.workspace }}/build/bin/Release_x86 + + build-release-windows: + env: + PREMAKE_CONFIG: vs2022 + runs-on: windows-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1.3.1 + + - name: Setup premake + uses: abel0b/setup-premake@v2.3 + with: + version: ${{ env.PREMAKE_VERSION }} + + - name: Premake generate + working-directory: ${{ github.workspace }} + run: premake5 ${{ env.PREMAKE_CONFIG }} + + - name: Build + working-directory: ${{ github.workspace }} + run: msbuild /m /p:Configuration=Release /p:Platform=Win32 build + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: oat-windows + path: | + ${{ github.workspace }}/build/bin/Release_x86 + + release: + needs: + - build-release-linux + - build-release-windows + runs-on: ubuntu-latest + permissions: + actions: read + contents: write + steps: + - uses: actions/download-artifact@v4 + - name: Zip artifacts + run: | + 7z a oat-linux.tar ./oat-linux/* + 7z a oat-linux.tar.gz ./oat-linux.tar + 7z a oat-windows.zip ./oat-windows/* + - uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + artifacts: "oat-linux.tar.gz,oat-windows.zip" + artifactErrorsFailBuild: true + allowUpdates: true + draft: true + omitBodyDuringUpdate: true + omitDraftDuringUpdate: true \ No newline at end of file