From 9a3cbf164f1e7b980b2d5d615aecfb4bb53f563f Mon Sep 17 00:00:00 2001 From: Lucas Rodriguez Date: Thu, 12 Jun 2025 14:38:59 +0000 Subject: [PATCH] :construction_worker: ci: merge and update build/release workflows --- .github/workflows/build-packages.yml | 95 ++++++++++++++++++++++++++ .github/workflows/linux-pkg-build.yaml | 53 -------------- .github/workflows/windows.yml | 58 ---------------- 3 files changed, 95 insertions(+), 111 deletions(-) create mode 100644 .github/workflows/build-packages.yml delete mode 100644 .github/workflows/linux-pkg-build.yaml delete mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml new file mode 100644 index 0000000..9a04912 --- /dev/null +++ b/.github/workflows/build-packages.yml @@ -0,0 +1,95 @@ +name: Build packages +on: + pull_request: + branches: [master] + push: + branches: [master] + tags: + - "v*.*.*" + +permissions: + contents: write + +jobs: + build-linux: + environment: auto-build + runs-on: ubuntu-22.04 + steps: + - name: ⬆️ Checkout repository + uses: actions/checkout@v4 + - name: ⬆️ Initialize submodules + uses: snickerbockers/submodules-init@v4 + - name: 📦️ Build Linux package + run: | + sudo apt-get update --fix-missing + sudo apt-get install -y -f -o Acquire::Retries=3 cargo libfuse2 + docker build -t oapi-build ./docker + docker run --device /dev/fuse --cap-add SYS_ADMIN --privileged=True -v $PWD:/oapi-cli oapi-build /oapi-cli/docker/make.sh cp + sudo chown $(whoami) -R ./docker-package/ + ./docker-package/oapi-cli-x86_64.AppImage --appimage-extract-and-run --help + ./docker-package/oapi-cli-x86_64.AppImage --help + cp docker-package/oapi-cli-x86_64.AppImage ./oapi-cli-x86_64.AppImage + make tests-appimage + - name: 🚀 Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: linux-artifacts + path: | + oapi-cli-x86_64.AppImage + build-windows: + runs-on: windows-latest + steps: + - name: ⬆️ Checkout repository + uses: actions/checkout@v4 + - name: ⬆️ Initialize submodules + uses: snickerbockers/submodules-init@v4 + - name: 🔧 Setup Windows environment + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + install: >- + git + base-devel + zip + pacboy: gcc + cmake + openssl + json-c + curl + - name: 📦️ Build Windows package + shell: msys2 {0} + run: | + git submodule update --init + .github/scripts/build-win.sh + mkdir oapi-pkg + LD_LIBRARY_PATH="$PWD" ./cp-lib.sh oapi-cli oapi-pkg/ + cp oapi-cli.exe oapi-pkg/ + zip -r oapi-cli-x86_64.zip oapi-pkg/ + ./oapi-pkg/oapi-cli.exe --insecure ReadRegions | grep api.eu-west-2.outscale.com + env: + OSC_ACCESS_KEY: ${{secrets.OSC_ACCESS_KEY}} + OSC_SECRET_KEY: ${{secrets.OSC_SECRET_KEY}} + OSC_REGION: ${{secrets.OSC_REGION}} + - name: 🚀 Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: windows-artifacts + path: | + oapi-cli-x86_64.zip + release: + runs-on: ubuntu-22.04 + needs: [build-linux, build-windows] + if: github.ref_type == 'tag' + steps: + - name: ⬇️ Retrieve packages + uses: actions/download-artifact@v4 + with: + path: ./pkgs + - name: 🚀 Draft GitHub release + uses: softprops/action-gh-release@v2 + with: + draft: true + generate_release_notes: true + files: | + ./pkgs/**/oapi-cli-x86_64.zip + ./pkgs/**/oapi-cli-x86_64.AppImage diff --git a/.github/workflows/linux-pkg-build.yaml b/.github/workflows/linux-pkg-build.yaml deleted file mode 100644 index b0aacdc..0000000 --- a/.github/workflows/linux-pkg-build.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: linux-pkg-build -on: - pull_request: - branches: [ master ] - push: - branches: [ master ] - tags: - - '*' - -jobs: - auto-build: - environment: auto-build - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: snickerbockers/submodules-init@v4 - - name: Build the Docker image - run: | - sudo apt-get update --fix-missing - sudo apt-get install -y -f -o Acquire::Retries=3 cargo libfuse2 - docker build -t oapi-build ./docker - docker run --device /dev/fuse --cap-add SYS_ADMIN --privileged=True -v $PWD:/oapi-cli oapi-build /oapi-cli/docker/make.sh cp - sudo chown $(whoami) -R ./docker-package/ - ./docker-package/oapi-cli-x86_64.AppImage --appimage-extract-and-run --help - ./docker-package/oapi-cli-x86_64.AppImage --help - cp docker-package/oapi-cli-x86_64.AppImage . - make tests-appimage - - name: Upload artifacts - uses: actions/upload-artifact@v4 - if: ${{ github.event_name != 'push' }} - with: - name: oapi-cli-linux - path: | - oapi-cli-x86_64.AppImage - - name: upload nightly - uses: "marvinpinto/action-automatic-releases@latest" - if: ${{ github.event_name == 'push' }} - with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" - prerelease: true - automatic_release_tag: "nightly-linux" - title: "Linux Development Build" - files: | - oapi-cli-x86_64.AppImage - - name: upload release - uses: "marvinpinto/action-automatic-releases@latest" - if: startsWith(github.ref, 'refs/tags/v') - with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" - automatic_release_tag: "${{ github.ref_name }}" - title: "Linux Development Build" - files: | - oapi-cli-x86_64.AppImage diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml deleted file mode 100644 index 54a94fb..0000000 --- a/.github/workflows/windows.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Package Application on Mingw64 - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW64 - install: >- - git - base-devel - zip - pacboy: - gcc - cmake - openssl - json-c - curl - - - shell: msys2 {0} - run: | - git submodule update --init - .github/scripts/build-win.sh - mkdir oapi-pkg - LD_LIBRARY_PATH="$PWD" ./cp-lib.sh oapi-cli oapi-pkg/ - cp oapi-cli.exe oapi-pkg/ - zip -r oapi-cli-x86_64.zip oapi-pkg/ - ./oapi-pkg/oapi-cli.exe --insecure ReadRegions | grep api.eu-west-2.outscale.com - env: - OSC_ACCESS_KEY: ${{secrets.OSC_ACCESS_KEY}} - OSC_SECRET_KEY: ${{secrets.OSC_SECRET_KEY}} - OSC_REGION: ${{secrets.OSC_REGION}} - - name: Upload artifacts - uses: actions/upload-artifact@v4 - if: ${{ github.event_name != 'push' }} - with: - name: oapi-cli-win - path: | - oapi-cli-x86_64.zip - - name: upload nightly - uses: "marvinpinto/action-automatic-releases@latest" - if: ${{ github.event_name == 'push' }} - with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" - prerelease: true - automatic_release_tag: "nightly-windows" - title: "Windows Development Build" - files: | - oapi-cli-x86_64.zip