name: Build and Release Lindbergh on: push: branches: - master pull_request: branches: - master jobs: build-and-release: runs-on: ubuntu-latest steps: # Checkout the repository - name: Checkout repository uses: actions/checkout@v3 # Set up Docker Buildx - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # Build the Docker image - name: Build Docker image run: | docker build --target lindbergh-build -t lindbergh-loader . # Run the Docker container to extract the build output - name: Run container and extract build output run: | docker create --name lindbergh-builder lindbergh-loader docker cp lindbergh-builder:/lindbergh-loader/build ./build docker rm lindbergh-builder # Archive the build directory as an artifact - name: Archive build directory uses: actions/upload-artifact@v3 with: name: build-output path: ./build # Create a GitHub release and upload the artifact - name: Create Release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: v${{ github.run_number }} release_name: "Build v${{ github.run_number }}" draft: false prerelease: false - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./build asset_name: build.tar.gz asset_content_type: application/gzip